繁体   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