0

基本的に言えば、次のようなものがあります。

public class Product
{
public int ID {Get;Set;}
public string foo {Get;Set;}
public string bar {Get;Set;}
public virtual SubProduct subproduct{get;set;}
public int SubProductID{get;set;}
}

public class SubProduct
{
public int ID {Get;Set;}
public string foo {Get;Set;}
}

文字列を受け取り、foo を検索するメソッドがあります -

var correctproduct = (db.product.SingleOrDefault(x => x.foo == my_string);

そして、それが見つかった場合は正しい製品を使用しますが、存在しない場合は ( で確認してif correctproduct==null、新しいオブジェクトを作成し、 を実行します.SaveChanges();

ただし、サブプロダクトを操作する次の部分に直行します。新しいオブジェクトを作成する部分には に数値が割り当てられていますsubproductが、展開しようとすると だけになりObject reference not set to an instance of an objectます。次回実行すると、完全に機能します。

id のサブプロダクトを検索し、オブジェクトをプロパティに直接割り当てることができるアイデアはありますsubproductが、これが最善の方法だとは思いません。また、私の使用SingleOrDefaultは単なるハックであると感じており、これを行う最善の方法についてフィードバックをいただけないでしょうか?

4

1 に答える 1

0

次のコードを使用できます。

objectProduct.subProduct = new SubProduct{ ID = id,foo = value };
于 2012-06-26T13:28:04.380 に答える