我們正在使用實體框架工作5.0。和數據庫MYSQL。當我們嘗試遷移時間時會發生異常。EF5:無法創建,因爲無法確定主鍵列。使用AddForeignKey fluent API完全指定外鍵
「無法創建,因爲無法確定主鍵列,請使用AddForeignKey fluent API完全指定外鍵」。
請幫忙。
在此先感謝。
我們正在使用實體框架工作5.0。和數據庫MYSQL。當我們嘗試遷移時間時會發生異常。EF5:無法創建,因爲無法確定主鍵列。使用AddForeignKey fluent API完全指定外鍵
「無法創建,因爲無法確定主鍵列,請使用AddForeignKey fluent API完全指定外鍵」。
請幫忙。
在此先感謝。
實體框架要求在主體表中的整個主鍵和相應的列(外鍵)之間建立關係,使其成爲從屬表。
檢查所有的表包含主鍵列
如這裏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");
所有表有限公司主鍵 – user2017909 2013-03-15 11:30:12