簡體   English   中英

實體框架和持有ID

[英]Entity Framwork and holding IDs

我使用實體框架和C#,遇到以下問題。 我需要將程序中的對象從數據庫鏈接到實體。 因此,如果我有一個對象A和一個實體BI將B的ID存儲在A中。然后我對A進行填充,最終想再次訪問B。 我這樣做是這樣的:

using (var context = new TestModelContainer()) {
    var B = context.BSet.FirstOrDefault(b=>b.Id == A.BId);
    // do stuff with B
}

但是我想知道這是否是一個有效的解決方案,因為如果我以某種方式從數據庫中刪除B並添加新的B實體,最終另一個B將獲得與存儲在A中的原始B相同的ID。

最好的做法是什么?

好消息是,身份生成不是這樣工作的。 這是一個櫃台,舊數字不會被重復使用。

但是,您可能要考慮不要為此目的使用數據庫身份,而要使用存儲在單獨列中的GUID(或基於序列的編號)。 數據庫身份被認為是私人信息,例如,當您要合並數據庫時,它們可能不會成為將來的證明。

當您必須考慮刪除操作時,保持事物同步確實會有些痛苦,但這就是在數據庫外部存儲與數據相關的數據時所要付出的努力:-)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM