我有基类
public class MenuItem
{
[Key]
public Guid MenuItemID { get; set; }
public int MenuType { get; set; }
public Boolean IsActive { get; set; }
public String Details { get; set; }
}
和一个继承的类
public class MenuItem_URL : MenuItem
{
public String StartURL { get; set; }
public Boolean ChangePageEnabled { get; set; }
}
我首先使用Entity Framework代码。
现在我想要存储在数据库MenuItem
行中但不存储MenuItem_URL
。
我添加到上下文
public DbSet<MenuItem> MenuItems { get; set; }
问题是在我的数据库中为MenuItem
[MenuItemID] [uniqueidentifier] NOT NULL,
[MenuType] [int] NOT NULL,
[IsActive] [bit] NOT NULL,
[Details] [nvarchar](max) NULL,
[StartURL] [nvarchar](max) NULL,
[ChangePageEnabled] [bit] NULL
为什么实体框架会添加StartURL
和ChangePageEnabled
列?怎么告诉他不要?我想只存储基础MenuItem
对象而没有来自继承对象的任何其他数据
答案 0 :(得分:3)
可以通过使用try {
...
} catch(IOException e) {
throw new AuthentificationResourceException(e, response);
} catch (Exception e) {
throw new AuthentificationResourceException(e, response);
}
属性告诉EF忽略属性或整个类
NotMapped
或在流畅配置中使用[NotMapped]
public class MenuItem_URL : MenuItem {
public String StartURL { get; set; }
public Boolean ChangePageEnabled { get; set; }
}
方法。
Ignore<T>()
答案 1 :(得分:0)
告诉实体框架,它不需要存储属性。
public class MenuItem_URL : MenuItem
{
[NotMapped]
public String StartURL { get; set; }
[NotMapped]
public Boolean ChangePageEnabled { get; set; }
}