0

これと同じ例を実行: http://weblogs.asp.net/manavi/archive/2011/04/24/associations-in-ef-4-1-code-first-part-4-table-splitting.aspx

public class Order {
    public int OrderId {get;set;}
    public virtual OrderBilling Billing { get; set; }
}

public class OrderBilling {
    public int OrderBillingId { get; set; }
    public string Name { get; set; }
}

public DbSet<Order> Orders { get; set; }
public DbSet<OrderBilling> OrderBilling { get; set; }

public class OrderConfiguration : EntityTypeConfiguration<Order> {
    public OrderConfiguration() {
    HasRequired(o => o.Billing)
        .WithRequiredPrincipal();
}
}

Microsoft SQL では問題なく動作します。しかし、MySQLで実行すると、テーブルが作成され、世代のどこかに(FKを適用すると思います)、次がスローされます:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Order (OrderId)
ON DELETE NO ACTION ON UPDATE NO ACTION' at line 3

コネクタ 6.6.5 と Entity Framework 5 を使用しています。

これはコネクタの問題ですか?アプローチで?これをサポートするには、MySql 構成を追加する必要がありますか? 前もって感謝します。

4

1 に答える 1

0

問題は、Order をテーブル名として使用していて、SQL 文で「order」を使用していない場所が 1 か所あるためです。

テーブル名を SalesOrder に変更すると、すべてが再び問題なく機能し始めました。

于 2013-03-18T13:24:04.773 に答える