2013-03-15 30 views

回答

1

實體框架要求在主體表中的整個主鍵和相應的列(外鍵)之間建立關係,使其成爲從屬表。

檢查所有的表包含主鍵列

+0

所有表有限公司主鍵 – user2017909 2013-03-15 11:30:12

1

如這裏http://www.ozkary.com/2015/02/the-foreign-key-on-table-with-columns.html解釋,把一個FK時表,是不是你的數據庫上下文

的一部分,因此,而不是做你可以有問題

CreateTable(
    "dbo.App", 
    c => new 
    { 
     Id = c.Int(nullable: false, identity: true), 
     Name = c.String(nullable: false, maxLength: 150), 
     RoleId = c.String() 
    }) 
    .PrimaryKey(t => t.Id) 
    .ForeignKey("dbo.MyRoles", t => t.RoleId) 
    .Index(t => t.RoleId); 

你應該做的:

CreateTable(
    "dbo.App", 
    c => new 
    { 
     Id = c.Int(nullable: false, identity: true), 
     Name = c.String(nullable: false, maxLength: 150), 
     RoleId = c.String() 
    }) 
    .PrimaryKey(t => t.Id) 
    .Index(t => t.RoleId); 

AddForeignKey("dbo.App", "RoleId", "dbo.Roles","Id");