Set*_*son 9 .net linq datacontext linq-to-sql
在将结果集绑定到对象时,如何告诉LINQ数据上下文忽略特定属性或所有只读属性?
我正在处理一些难以用LINQ表达的T-SQL语句,所以我使用数据上下文的ExecuteQuery方法将直接的T-SQL传递给数据库.
如果我的类T具有任何只读属性,那么当数据上下文尝试设置这些属性时,我会在运行时获得异常,因为没有setter属性.如何告诉上下文忽略这些属性?
这就是我现在正在做的事情.它有效,但很糟糕:
public bool IsPaidInFull {
get { return NetTotal <= 0m; }
set { /* needed so linq doesn't choke. Should never be set by hand */ }
}
Run Code Online (Sandbox Code Playgroud)
您考虑过 Linq to Entities 吗?转换您的项目可能不值得,这取决于您的进度,或者您可以接受多少 Orm 开销。然而,这种情况在 Linq to Entities 中不会成为问题。它在加载对象时不会尝试更新对象中的只读属性,因为它们没有显式映射,它们只是扩展属性。
另外,您可以使用 getter 函数而不是属性来走老式/java 路线。public bool getIsPaidInFull(){return NetTotal <= 0m;}。
或者,您可以尝试在继承的子类中实现只读属性,但这可能会引入各种类型问题。
| 归档时间: |
|
| 查看次数: |
1689 次 |
| 最近记录: |