有没有办法从数据库中设置EF实体引用名称?

时间:2014-08-23 13:44:20

标签: entity-framework ado.net-entity-data-model

有没有办法从数据库设置实体引用名称?

  1. 我先使用数据库。
  2. 我有一个包含多个外键的表到同一个表 (地址)如下图所示。
  3. EF为2个地址创建实体关系并设置名称 到AddressReference和Address1Reference不是 按照我的意愿描述。
  4. 我知道我可以使用注释从EF端执行此操作,但有没有办法从数据库中设置实体引用名称?

    CREATE TABLE [dbo].[Person] (
        [ID] INT PRIMARY KEY IDENTITY NOT NULL,
        [Name] NVARCHAR(50) NOT NULL,
        [HomeAddressID] INT,
        [WorkAddressID] INT
    )
    GO
    
    CREATE INDEX [IX_Person_HomeAddressID] ON [dbo].[Person] ([HomeAddressID])
    GO
    
    CREATE INDEX [IX_Person_WorkAddressID] ON [dbo].[Person] ([WorkAddressID])
    GO
    
    ALTER TABLE [dbo].[Person] ADD CONSTRAINT [FK_Person_HomeAddressID] FOREIGN KEY ([HomeAddressID]) REFERENCES [Address] ([HomeAddressID])
    GO
    
    ALTER TABLE [dbo].[Person] ADD CONSTRAINT [FK_Person_WorkAddressID] FOREIGN KEY ([WorkAddressID]) REFERENCES [Address] ([WorkAddressID])
    GO
    

1 个答案:

答案 0 :(得分:0)

不,首先使用数据库,您需要手动更新数据模型中的导航名称。

当然,您可以修改T4文件以生成不同的导航名称(默认使用FK表名称)。