基本上,我有以下几点:
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);
并且,如果它可以找到它,我使用correctproduct,但是,如果它不存在(通过if correctproduct==null
检查,我创建一个新对象并执行.SaveChanges();
。
但是,我直接进入下一个与子产品互动的部分。我创建新对象的部分为subproduct
分配了一个数值,但是,尝试展开,我得到Object reference not set to an instance of an object
。下次运行时,它可以完美运行。
我知道我可以在哪里搜索id的子产品并直接将对象分配给subproduct
属性,但是,我觉得这不是最好的方法。我也觉得我对SingleOrDefault
的使用只是一个黑客,并且想知道我是否可以就最佳方式做出一些反馈?
答案 0 :(得分:0)
您可以使用以下代码
objectProduct.subProduct = new SubProduct{ ID = id,foo = value };