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只是一种 hack,我想知道我是否可以就最好的方法获得一些反馈?

4

1 回答 1

0

您可以使用以下代码,

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