对于一些背景知识,我必须对我正在处理的数据库架构进行一些更改,并且我希望避免更改所有查询。
我希望通过使用辅助属性来实现这一点。
假设我有以下模型
public class Table1
{
[Key]
public int Table1Id { get; set; }
public int Value1 { get; set; }
public int Value2 { get; set; }
public int TotalValue {get; set;}
}
我有很多像这样的问题
var TotalValues = db.Table1s
.Select(t => new Table1ViewModel
{
Foo = t.TotalValue
})
.ToList();
我希望能够移除TotalValue
并动态计算,而无需针对使用TotalValue
的每个地方搜索我的应用。
我希望能够做的只是将Table1
更改为以下
public class Table1
{
[Key]
public int Table1Id { get; set; }
public int Value1 { get; set; }
public int Value2 { get; set; }
[NotMapped]
public int TotalValue
{
get { return Value1 + Value2; }
}
}
问题在于,如果我这样做,运行查询时会得到NotSupportedException
。
LINQ to Entities不支持'TotalValue'。仅支持初始化程序,实体成员和实体导航属性。
有没有办法做我想做的事情?或者至少是类似的东西?