GetObjectKeyは、既存のインスタンス化されたオブジェクトを検索し、その後データストアを検索する利点があります。あなたは強い型付けの一部を失い、あなたの結果のオブジェクトをキャストする必要がありますようにしかし、それはまた、そうです:LINQLINQクエリまたはGetObjectKeyを使用して単一のEntity Frameworkエンティティを取得しますか?
int customerID = 1;
Customer customer = (from c in context.Customers
where c.CustomerID = customerID
select c).FirstOrDefault();
個人的に、私は後者を好む対
GetObjectKey
int customerID = 1;
EntityKey key = new EntityKey("MyEntities.Customers", "CustomerID", customerID);
Customer customer = context.GetObjectByKey(key) as Customer;
メソッドを使用しています。また、あなたのDALは、ゲットメソッドがすべてクエリーになっていてもかなり均一ですが、これは単なる個人的な好みです。
あなたは男の子と女の子は何を使用しますか?
前者の方法では、キャストの代わりに "as"キーワードを使用します。このようにして結果がnullの場合、例外はスローされません。 asキーワードは値のキャストを試みますが、正しいタイプでない場合はnullを返します。したがって、顧客としてcontext.GetObjectByKey(key)を使用します。 –
良い点。この例を少しでもスコアに変更します。 –