別のスキーマ内の他のテーブルへの外部キーを持つテーブルに問題があります。
たとえば、SchemaA の TableA には、SchemaB の TableB への外部キーがあります。CTP4 がデータベースを作成するとき、TA から TB への外部キーを作成する代わりに、TableA_ID と TableB_ID 列を持つ 3 番目のテーブル "TableA_TableB" を作成します。
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.. を削除すると、テーブルが正しく作成されます。
解決策を探してみましたが、何も見つかりませんでした。私が間違っていること、またはこれはバグですか?