This question强调您不能将服务器端生成的GUID与实体框架一起使用。但是,我希望生成在数据库API的DAL级别处理的GUID(即,当调用实体的构造函数时,我希望将实体的id初始化为新的GUID)。我的计划是编写一个小工具来生成一堆代码文件,这些代码文件是实体的部分类。我有办法做到这一点,问题是:我是不是出于这种想法这样做或者这是我应该这样做的方式吗?
我的问题是,当edmx文件更新时,我不想也编辑一堆代码文件,我只想运行一个可以做必要的工具。
再一次,我的脑袋是直的?
答案 0 :(得分:6)
如果你看一下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中可以正常工作的局部类。
希望这有帮助
亚历