【问题标题】:Does EF .edmx create an abstract layer over the DB Foreign keys identifiersEF .edmx 是否在 DB 外键标识符上创建抽象层
【发布时间】:2015-03-24 13:43:10
【问题描述】:

我正在开发一个 asp.net mvc Web 应用程序,我使用 EF 映射现有数据库并创建 .edmx 文件。

但我不确定,现在在我的开发服务器中,我有以下关系,命名为:-

FK_SecurityRoleGroups_Groups

但是在我的登台服务器中,我得到了这个名为 FK_Table_Table 而不是 FK_SecurityRoleGroups_Groups 的关系,但具有相同的父子表和列。 所以现在如果我将我的 asp.net mvc Web 应用程序从我的 Dev 部署到测试服务器,这会导致任何问题吗?或者 FK 标识符在 .edmx 文件中并不重要,真正重要的是关联的父表和子表和列? 问候

【问题讨论】:

    标签: c# asp.net asp.net-mvc entity-framework edmx


    【解决方案1】:

    如果您从数据库构建 edmx,则关系将转换为所谓的“关联”。默认情况下,关联的名称与关系相同。

    名称本身并不具有技术重要性,并且关联定义包含模型应该如何操作以及它如何与数据库相关的所有详细信息。您可以将关联名称重新定义为新标准,但如果您希望将它们与数据库匹配,则可能会造成混淆。如果您在记事本中打开 edmx,您可以看到您的关联是如何定义的。

    <Association Name="FK_Address_User">
        <End Role="User" Type="Self.User" Multiplicity="1" />
        <End Role="Address" Type="Self.Address" Multiplicity="*" />
        <ReferentialConstraint>
            <Principal Role="User">
                <PropertyRef Name="UserID" />
            </Principal>
            <Dependent Role="Address">
                <PropertyRef Name="UserID" />
            </Dependent>
        </ReferentialConstraint>
    </Association>
    

    【讨论】:

    • 但一般来说,当我将 .edmx 部署到另一台服务器时,关联名称不同不会导致任何问题?这是正确的吗?
    • 不,唯一的要求是名称是唯一的。它不必与数据库中的内容相匹配。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2019-09-03
    • 2012-02-13
    • 1970-01-01
    相关资源
    最近更新 更多