C# 使用guid和实体框架
突出显示不能在实体框架中使用服务器端生成的GUID。但是,我希望在数据库API的DAL级别处理GUID的生成(即,当调用实体的构造函数时,我希望将实体的id初始化为新的GUID)。我的计划是编写一个小工具来生成一组代码文件,这些文件是实体的部分类。我有办法,问题是:我这样做是疯了还是我应该这样做 我的问题是,当edmx文件更新时,我不想同时编辑一堆代码文件,我只想运行一个工具来完成必要的工作C# 使用guid和实体框架,c#,entity-framework,.net-3.5,C#,Entity Framework,.net 3.5,突出显示不能在实体框架中使用服务器端生成的GUID。但是,我希望在数据库API的DAL级别处理GUID的生成(即,当调用实体的构造函数时,我希望将实体的id初始化为新的GUID)。我的计划是编写一个小工具来生成一组代码文件,这些文件是实体的部分类。我有办法,问题是:我这样做是疯了还是我应该这样做 我的问题是,当edmx文件更新时,我不想同时编辑一堆代码文件,我只想运行一个工具来完成必要的工作 再说一遍,我的头是直的吗?如果你看一下实体框架默认生成的部分类,没有默认的构造函数 因此,在单独的分部类
再说一遍,我的头是直的吗?如果你看一下实体框架默认生成的部分类,没有默认的构造函数 因此,在单独的分部类中执行此操作将非常有效:
public partial class Customer{
public Customer(){
_ID = Guid.NewGuid();
}
}
因此,可能没有理由不做你正在计划的事情
不过,您可能需要查看T4模板来实现这一点。这就是EF4.0(即.NET4.0中的EF)允许您自定义生成代码的方式。现在,在4.0中,这种体验是非常不明显的,您可以轻松地在T4的基础上组合一些东西来创建这个partials类,它在.NET3.5SP1中可以正常工作
希望这有帮助
亚历克斯这是一个非常有用的建议。我可能不会在这个项目上使用T4模板,但了解其他项目非常有用。当服务器端的默认值newid()没有使用时,这对我很有用。谢谢