我的模型中有以下属性:
//PRODUCTS
private ICollection<int> _productIds;
[NotMapped]
public ICollection<int> ProductIds
{
get { return Products.Select(s => s.Id).ToList(); }
set { _productIds = value; }
}
当我的代码返回此模型的新实例时,set
访问者似乎没有。换句话说,我可以看到get
访问者正在正确地返回产品ID的集合,但是当我尝试使用set
进行分配时,该值为空List<int>
。例如:
var result = new Application
{
Id = application.Id,
. . .
ProductIds = application.ProductIds //<--this is a list of integers,
// but the new "result" object shows an empty list.
};
答案 0 :(得分:3)
让一个属性使用get
和set
来处理不同来源是非常不寻常的。如果你总是从其他地方读取值,你可能想要完全删除set。
也许您正在寻找覆盖属性的值(即单元测试),如下所示:
[NotMapped]
public ICollection<int> ProductIds
{
get { return _productIds != null ?
_productIds // return one that was "set"
: Products.Select(s => s.Id).ToList(); // read from DB
}
set { _productIds = value; }
}