Ich habe eine Tabelle, die eine abstrakte Klasse entworfenDefinieren Sie ein Feld als geschütztes Eigentum
namespace Test.Data
{
[Table("Parameter")]
public abstract class Parameter
{
[StringLength(200)]
protected string title { get; set; }
protected decimal? num { get; set; }
public Int16 sts { get; set; }
}
}
und einige Klassen von ihm verlängert haben (TPH) Ich fand, dass, wenn Eigenschaften wie PROTECTED definiert, werden sie erzeugen nicht in Datenbank und sie sollten öffentlich sein (oben sind andere st geschützt). Aber ich mag die oben genannten Eigenschaften aus einem anderen Namensraum verstecken und mit verschiedenen Namen für sie, wie:
namespace Test.Data
{
public class Measure:Parameter
{
[NotMapped]
public string Title { get { return ttl; } set { ttl = value; } }
}
}
namsespace Test.Model
{
public class MeasureModel:Data.Measure
{
public void AddNew()
{
var m = new Data.Measure();
m.Title="meter"; //other measure's properties shouldn't accessable here
}
}
}
Intern kann Ihnen helfen – ahmedsafan86
Mögliches Duplikat von [So ordnen Sie eine geschützte Eigenschaft in EF 4.3 zuerst zu] (http://StackOverflow.com/Questions/9311954/How-to-Map-a-Schutz-Property- in-ef-4-3-code-first) – poke
@poke, EF optimiert jedes Jahr und jetzt Tage sprechen wir über seine 6.x – Hamid