使用GUID和entity framework

此问题突出显示您无法将服务器端生成的GUID与entity framework一起使用。 但是,我希望生成在数据库API的DAL级别处理的GUID(即,当调用实体的构造函数时,我希望将实体的id初始化为新的GUID)。 我的计划是编写一个小工具来生成一堆代码文件,这些代码文件是实体的部分类。 我有办法做到这一点,问题是:我是不是出于这种想法,或者这是我应该这样做的方式?

我的问题是,当edmx文件更新时,我不想也编辑一堆代码文件,我只想运行一个可以做必要的工具。

再说一次,我的头是直的吗?

好吧,如果你看一下Entity Framework默认生成的部分类,就没有默认的构造函数。

因此,在单独的部分类中执行此操作将很好地工作:

public partial class Customer{ public Customer(){ _ID = Guid.NewGuid(); } } 

因此,没有理由不做你计划的事情。

您可能希望查看T4模板来执行此操作。 这就是EF 4.0(即.NET 4.0中的EF)允许您自定义生成的代码的方式。 现在虽然在4.0中这种体验是相当无缝的,你可以轻松地将基于T4的东西放在一起,只是为了创建这个在.NET 3.5 SP1中运行良好的局部类。

希望这可以帮助

亚历克斯