为什么这个“set”访问器不起作用
本文关键字:访问 不起作用 set 为什么 | 更新日期: 2023-09-27 18:22:05
我的模型中有以下属性:
//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.
};
一个属性的get
和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; }
}