2009-07-24 110 views
5

This question强调您不能使用服务器端生成的GUID与实体框架。但是,我想要在数据库API的DAL级别处理GUID的生成(即,调用实体的构造函数时,我希望将实体的ID初始化为新的GUID)。我的计划是编写一个小工具来生成一堆代码文件,这些文件是实体的部分类。我有办法做到这一点,问题是:我是不是这样做,或者我应该这样做?使用GUID和实体框架

我的问题是,当edmx文件更新时,我不想还必须编辑一堆代码文件,我只是想运行一个工具来完成必要的工作。

再次,我的头是直的吗?

回答

6

那么,如果您查看实体框架默认生成的部分类,则不存在默认构造函数。

所以这样做在一个单独的部分课程将很好地工作:

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

所以有可能是没有理由不这样做你计划。

你可能想看看T4模板来做到这一点。这就是EF 4.0(即.NET 4.0中的EF)允许您定制生成的代码的方式。现在,在4.0版本中,这种体验非常无缝,您可以轻松地将基于T4的东西放在一起,只需创建这些在.NET 3.5 SP1中可以正常工作的partials类。

希望这有助于

亚历

+0

非常有用的建议。我可能不会在这个项目上使用T4模板,但是对于其他项目来说非常有用。 – 2009-07-24 14:48:23