如何使用EF CTP5代码优先使用复合键重命名多对多表的列?

时间:2011-01-19 19:17:10

标签: many-to-many code-first entity-framework-ctp5

以下是ADO.NET站点的示例。

重命名多列中的列:许多表:

modelBuilder.Entity<Product>() 
.HasMany(p => p.Tags)
.WithMany(t => t.Products)
.Map(m =>
    {
        m.MapLeftKey(p => p.ProductId, "CustomFkToProductId");
        m.MapRightKey(t => t.TagId, "CustomFkToTagId");
    });

请在每个表上使用第二个虚拟键(即ProductId2,TagId2)扩展此示例。

1 个答案:

答案 0 :(得分:0)

为此你只需要映射辅助列:

modelBuilder.Entity<Product>()
            .HasMany(p => p.Tags)
            .WithMany(t => t.Products) 
            .Map(m => 
            { 
                m.MapLeftKey(p => p.ProductId, "CustomFkToProductId");
                m.MapLeftKey(p => p.ProductId2, "CustomFkToProductId2");
                m.MapRightKey(t => t.TagId, "CustomFkToTagId"); 
                m.MapRightKey(t => t.TagId2, "CustomFkToTagId2"); 
            });