生成实体键

3
我在使用Entity Framework 4时遇到了第一个问题。原来SQL CE与EF4一起使用时,不支持自动生成的主键。当我使用ObjectContext.SaveChanges()时,会得到一个System.Data.UpdateException,并显示以下信息:Server-generated keys and server-generated values are not supported by SQL Server Compact. 因此,现在我必须手动为我的实体生成主键。假设我想使用自增的整数作为主键,那么在使用Entity Framework时生成和跟踪这些主键的最佳方法是什么?感谢您的帮助。
2个回答

4

回答不错,但不幸的是,链接页面上的代码仅适用于未经过滤的实体集,因为扩展方法返回实体集中的最大ID。所以,我最终使用GUID作为实体键。我为每个实体创建了一个部分类,并添加了这个构造函数代码:this.ID = Guid.NewGuid()。 - David Veeneman

0

我不认为David的想法是一个好主意,但是我别无选择。 也许CE在下一个版本中会支持自动生成的主键。


2
实际上,SQL Compact支持自动生成的键 - 显然,EF4不支持从SQL Compact生成自动生成的键。我原始问题中链接的博客文章解释了这个问题。 - David Veeneman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接