【问题标题】:SQL Server schema names to CLR namespaces in EF code generationEF 代码生成中的 SQL Server 架构名称到 CLR 命名空间
【发布时间】:2012-06-20 17:16:55
【问题描述】:

我的数据库中有以下表格:

Business.Profiles
User.Profiles

其中“业务”和“用户”是架构。

当通过 Ado.Net DbContext Generator(添加代码生成项)生成 DbContext 时,我在代码中得到两个类:

Profile
Profile1

理想情况下,我希望将架构名称转换为 clr 命名空间,但这并没有发生。有什么方法可以强迫这样的事情吗?我该如何处理?

【问题讨论】:

    标签: sql-server entity-framework entity-framework-4


    【解决方案1】:

    DbContext Generator 仅使用 EDMX 文件中指定的名称,所以我猜您在 EDMX 中定义了 ProfileProfile1 实体。

    类必须与 EDMX 中的实体具有完全相同的名称,并且您不能将具有相同名称的两个类映射到同一个 EDMX 模型。 EF 不支持它,因为 POCO 类是按约定映射的,该约定仅使用类的名称(EF 在映射中不使用 CLR 命名空间)。正因为如此,你无法实现你想要的。简单的解决方法是简单地在 EDMX UserProfileBusinessProfile 中命名您的实体。

    【讨论】:

    • 我一直发现这是一个相当有问题的组织缺陷。除了变通方法之外,模式通常用于数据库命名空间;在命名空间类和模式对象之间进行一对一的映射会更好。
    猜你喜欢
    • 2014-06-22
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    • 2013-02-09
    • 2013-06-17
    • 2010-09-23
    • 1970-01-01
    相关资源
    最近更新 更多