【发布时间】:2016-02-07 00:54:14
【问题描述】:
所以我有我的模型,其中一个叫做 BaseBird。 BaseBird 是我的其他模型中包含的模型;火鸡、鸡肉、鸵鸟。因此,我创建了一个名为 IBaseBird 的接口,并将其委托给 BaseBird 属性。
public class Turkey: IBaseBird
{
public virtual BaseBird BaseBird { get; set; }
public string BeakType
{
get { return BaseBird.BeakType; }
set { BaseBird.BeakType = value; }
}
不幸的是,当我创建迁移时,这会产生副作用,它会在模型上创建所有 BaseBird 列。我已经看到并尝试实现各种方式来忽略列,例如
foreach (var property in typeof (IBaseBird).GetProperties())
{
modelBuilder.Types().Configure(m => m.Ignore(); );
但这忽略了我的整个数据模型的列,包括我的 BaseBird 模型。
然后我尝试将其硬塞到模型构建器中,但我似乎无法找到一种仅通过名称来动态引用属性的方法。
foreach (var property in typeof (IBaseBird).GetProperties())
{
modelBuilder.Entity<Turkey>().Ignore(t => t.property.Name);
}
但这只会引发错误,因为我无法弄清楚如何动态访问属性。
非常感谢您对此的任何帮助。
【问题讨论】:
标签: c# entity-framework datamodel