实体中的标量属性的数据是否可以来自函数?
一个例子是,我的数据库中有一个字段,它指向的是一个数字字段,但这对用户没有任何意义,所以我想添加另一个属性,但让它指向一个返回有意义名称的函数。
我不想将这个额外的字段添加到表中,所以我宁愿将它添加到模型中,现在我正在通过视图进行操作,但我不想将视图添加到模型中。
另外,如果我添加这个属性并从数据库更新我的模型,添加的属性会消失吗?
实体中的标量属性的数据是否可以来自函数?
一个例子是,我的数据库中有一个字段,它指向的是一个数字字段,但这对用户没有任何意义,所以我想添加另一个属性,但让它指向一个返回有意义名称的函数。
我不想将这个额外的字段添加到表中,所以我宁愿将它添加到模型中,现在我正在通过视图进行操作,但我不想将视图添加到模型中。
另外,如果我添加这个属性并从数据库更新我的模型,添加的属性会消失吗?
我已经这样做了,但我使用的是 Code-First 并且在 WCF 数据服务中使用自定义提供程序。所以YMMV。当我建立我的元数据时,我说一个特定的属性 ( ResourceProperty
) 已CanReflectOnInstanceTypeProperty
设置为false
. 当您的查询被执行时,您将不得不修改您的表达式树以用您自己的表达式DataServiceProviderMethods.GetValue
替换实例。DataServiceProviderMethods.GetSequenceValue
你可以通过一个ExpressionVisitor
类来做到这一点。
这很棘手,但远非不可能。
我发现有几个资源非常有用......
这一系列关于数据服务提供商的博文。
Vitek 撰写的关于数据服务表达式的这个系列(特别是关于类型化和非类型化属性的第 4 部分)。
希望这个对你有帮助...