CREATE TABLE Lodging
(
LodgingID int PRIMARY KEY IDENTITY,
LodgingName nvarchar(100),
Resort bit NOT NULL,
ResortChainOwner nvarchar(100) NOT NULL,
...
)
Lodging
数据库表映射到Lodging
实体。然后我实现了TPH继承:
•以Lodging
实体为基础
•我创建了一个新实体Resort
,它派生自Lodging
。
•我将度假村特定的属性ResortChainOwner
移至Resort
实体类型,并设置(在SSDL中)ResortChainOwner's
默认值为"notApplicable"
•住宿表的Resort
列是歧视性列。如果Resort
列包含0
,则记录将显示在Lodging
实体中,如果列包含1
,则记录将具体化为Resort
实体
当调用以下代码SaveChanges
时,EF应该为ResortChainOwner
字段提供(对于插入命令)默认值,而是提供Null
var lodging = new Lodging();
...
context.Lodgings.AddObject(lodging);
context.SaveChanges();
那么如何在插入时强制EF为ResortChainOwner列提供默认值?
谢谢
答案 0 :(得分:0)
您已为Resort类定义了默认值,但您已实例化了超类“Lodging”。所以改为使用:
var lodging = new Resort();
如果我理解你的话,基类“Lodging”甚至不再具有该属性。