Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用guid和实体框架_C#_Entity Framework_.net 3.5 - Fatal编程技术网

C# 使用guid和实体框架

C# 使用guid和实体框架,c#,entity-framework,.net-3.5,C#,Entity Framework,.net 3.5,突出显示不能在实体框架中使用服务器端生成的GUID。但是,我希望在数据库API的DAL级别处理GUID的生成(即,当调用实体的构造函数时,我希望将实体的id初始化为新的GUID)。我的计划是编写一个小工具来生成一组代码文件,这些文件是实体的部分类。我有办法,问题是:我这样做是疯了还是我应该这样做 我的问题是,当edmx文件更新时,我不想同时编辑一堆代码文件,我只想运行一个工具来完成必要的工作 再说一遍,我的头是直的吗?如果你看一下实体框架默认生成的部分类,没有默认的构造函数 因此,在单独的分部类

突出显示不能在实体框架中使用服务器端生成的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()没有使用时,这对我很有用。谢谢