1

Entity Framework プロジェクトを開始します。

これから使用する Db をインポートすると、すぐに、多くのテーブル フィールドが EntityKey 型になり、ソース フィールドがキーではないことに気付きました。どのフィールドが EntityKeys になり、どのフィールドが作成されなかったかについてのパターンではないようです。

これは正常ですか?ウィザードには、これに関するオプションはありませんでした。このプロパティが追加されたすべてのフィールドについて、このプロパティを調べて削除する必要はありません。

アドバイスありがとうございます!

4

2 に答える 2

1

モデル上の各エンティティには一意のキーが必要であるため、EFは、一意の識別子に基づいてこれらのエンティティを追跡および取得/永続化できます。

データベース内のテーブルに主キーがない場合、データベースはリレーショナルではないため、主にRDBMS用に設計されたEFなどのORMで使用しないでください。

このようなエンティティがある場合:

public class Orders
{
   public string Name { get; set; }
   public double Price { get; set; }
}

単一の注文をどのように取得しますか?1つの注文をどのように保存しますか?

このような重要なLINQメソッドSingleOrDefault()は、これが例外をスローしないという保証がないため、役に立たないでしょう。

var singleOrder = ctx.Orders.SingleOrDefault(x => x.Name == "Foo");

「OrderId」と呼ばれるEntityKeyとPKある場合、これは例外をスローしないことが保証されています。

var singleOrder = ctx.Orders.SingleOrDefault(x => x.OrderId == 1);
于 2011-01-22T05:55:16.503 に答える
0

http://msdn.microsoft.com/en-us/library/dd283139.aspx

最初の段落を読めば、Entity Framework におけるエンティティ キーの役割が理解できると思います。

于 2011-01-22T02:42:34.300 に答える