基本上,我有一些类似的东西:
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,我想知道我是否可以就最好的方法获得一些反馈?