【问题标题】:Working with GUIDs and Entity Framework使用 GUID 和实体框架
【发布时间】:2009-07-24 13:55:59
【问题描述】:

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

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

再次,我的头是直的吗?

【问题讨论】:

    标签: c# entity-framework .net-3.5


    【解决方案1】:

    如果你看一下实体框架默认生成的部分类,没有默认构造函数。

    所以在单独的部分类中这样做会很好:

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

    因此,可能没有理由不按照您的计划去做。

    您可能希望查看 T4 模板来执行此操作。这就是 EF 4.0(即 .NET 4.0 中的 EF)允许您自定义生成的代码的方式。现在,虽然在 4.0 中,这种体验非常完美,但您可以轻松地将基于 T4 的东西放在一起,只是为了创建在 .NET 3.5 SP1 中可以正常工作的部分类。

    希望对你有帮助

    亚历克斯

    【讨论】:

    • 非常有用的建议。我可能不会在这个项目中使用 T4 模板,但了解其他项目非常有用。
    • 当服务器端默认值 newid() 没有时,这对我有用。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多