我們有一個包含多個表的SQL Server 2008 R2數據庫,每個表都有一些觸發器。在其中一列中,我們將調用這個Person.Age,我們有一個默認值,這樣如果我沒有明確提供一個值,它默認爲「18」。實體框架和SQL Server表屬性
create table PERSON
(
id int IDENTITY(1,1) PRIMARY KEY,
age char(2) DEFAULT '18',
Name char(40),
);
我使用的EntityFramework 4.0(和還試圖5.0)和Visual Studio 2010,加載和從數據庫中選擇。每當我用下面的語句插入到表中,它被插入行,但不完成的默認值:
var person = new Person
{
Name = "Peter"
};
using (var ctx = new MyEntities())
{
ctx.PERSON.AddObject(person);
ctx.SaveChanges();
}
這將導致與彼得的名字一排,但年齡會被設置爲空 - 而不是我的默認值爲18.
當我刷新/加載我的EDMX文件時,我似乎只能導入簡單的表和視圖,而且似乎沒有導入屬性的選項 - 雖然我會認爲這是默認完成的?任何想法爲什麼默認屬性不會觸發?
此外,我在SQL Server中定義了觸發器,以便在將新行插入到PERSON中時,會更新附加表。如果我直接針對數據庫運行SQL,但是如果我使用EntityFramework通過Visual Studio執行,則此功能仍然有效。
謝謝,