J'ai conçu une classe abstraite pour une tableDéfinir un champ comme propriété protégée
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; }
}
}
et ont certaines classes étendues de celui-ci (TPH) J'ai trouvé que lorsque les propriétés définies comme protégées, elles ne produiront pas dans base de données et ils devraient être publics (ci-dessus sont protégés d'autres sts). Mais je voudrais cacher les propriétés ci-dessus d'un autre espace de noms et en utilisant des noms différents pour eux, comme:
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
}
}
}
Interne peut vous aider – ahmedsafan86
Copie possible de [Comment mapper une propriété protégée dans le code EF 4.3 d'abord] (http://stackoverflow.com/questions/9311954/how-to-map-a-protected-property- in-ef-4-3-code-first) – poke
@poke, EF optimise chaque année et maintenant nous parlons de ses 6.x – Hamid