[英]How to ignore Foreign Key Constraints in Entity Framework Core SQLite database?
[英]How does Entity Framework handle Default constraints in the database table?
我正在編寫無法完成的代碼,因為這是一個漫長而繁瑣的過程。 我的任務是向現有數據庫添加新表,更新模型的.edmx並編寫一種方法,以通過c#后端代碼向表中添加新行。
在我的情況下,我的表上有2個默認約束
SomeTable
------------
ID INT IDENTITY (1,1) PRIMARY KEY CLUSTERED,
SomeDate DATETIME2 NOT NULL DEFAULT GETDATE(),
SomeOtherField VARCHAR(1024) NOT NULL DEFAULT ''
使用此表的.edmx模型,我將SomeDate的StoreGeneratedPattern
設置為Computed
。 我還手動在SSDL
對其進行了雙重檢查,以確保computed StoreGeneratedPattern
屬性位於SomeTable
實體的SomeDate
字段中。
據我所知,不確定何時有以下代碼
public void AddSomeRow(...)
{
SomeDbContext context = new SomeDbContext;
var table = new SomeTable { SomeOtherField = "Value" };
context.SomeTables.Add(table);
context.SaveChanges();
}
我相信SomeDate
字段將設置為默認約束(因為尚未在實體中填充該字段)。 這是真的嗎?
對SomeOtherField
上面列出的相同步驟, 我是否仍可以手動為它提供一個值(該值而不是默認約束出現在該字段中)或忽略它(默認約束將設置在該字段中)?
這個問題很難解釋,如果不合理,我深表歉意
StoreGeneratedPattern
表示該值始終由數據庫生成,因此不允許您對其進行修改。 即,僅對數據庫計算列有意義。
至少在EF 6.1之前,還沒有直接的方法來支持數據庫默認值。 您唯一可以做的就是將默認值移出數據庫,並在模型(或代碼優先)端生成它們。 您會發現一些可行的方法,但是在某些情況下(特別是對於N層應用程序)它們並不安全。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.