我有一個表的外鍵與其他架構中的其他表的問題。實體框架CTP4 - 跨模式的外鍵映射無法正常工作。錯誤?
例如,SchemaA中的TableA對SchemaB中的TableB具有外鍵。當CTP4創建數據庫時,它不會創建從TA到TB的外鍵,而是會創建第三個表「TableA_TableB」,其中包含TableA_ID和TableB_ID列,就好像它認爲它應該是多對多關係一樣。
public class TableA
{
public int ID { get; set; }
public TableB TableB { get; set; }
}
public class TableB
{
public int ID { get; set; }
}
var builder = new ModelBuilder();
// this works fine - creates only two tables with the correct foreign key
// builder.Entity<TableA>();
// builder.Entity<TableB>();
// this doesn't work - creates a third many-to-many table
builder.Entity<TableA>().MapSingleType()
.ToTable(new StoreTableName("TableA", "SchemaA"));
builder.Entity<TableB>().MapSingleType()
.ToTable(new StoreTableName("TableB", "SchemaB"));
var model = builder.CreateModel();
var store = new DbContext("database", model);
store.Database.DeleteIfExists();
store.Database.Create();
如果我從上面的代碼中刪除.ToTable ..它會正確創建表。
我試着尋找一個解決方案,但找不到任何東西。任何想法我做錯了,或者這是一個錯誤?
這個伎倆! – mjezzi 2010-09-07 12:44:56