1

我有一个看起来像这样的模型类:我可以在不扩展表的情况下扩展模型吗?

public class Foo 
{ 
    [Key] public int Id { get; set; } 
} 

别的地方在我的代码我加了私人子类:

private class Bar : Foo 
{ 
    public string Name { get; set; } 
} 

现在,当我脚手架迁移,我得到这个:

AddColumn("dbo.Foo", "Name", c => c.String()); 
AddColumn("dbo.Foo", "Discriminator", c => c.String(nullable: false, maxLength: 128)); 

我没有想到实体框架会发现有一个Bar子类,sinc e它是私人嵌套在控制器中的,除Models命名空间之外。我可以停止EF修改表吗?

我试图[NotMapped]忽略Name属性,但EF仍然添加一个Discriminator列,因为它使用的继承策略。

+1

您是否尝试在“Bar”类中添加该属性 – octavioccl

回答

3

您可以在整个班级中使用[NotMapped]属性。

这是该属性的定义:

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property, AllowMultiple = false)] 
public class NotMappedAttribute : Attribute 
{ 
} 

AttributeUsage说,你可以用它在类,而不仅仅是财产。

相关问题