使用DataContext.ExecuteQuery当忽略只读类属性
-
22-08-2019 - |
题
如何判断一个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 */ }
}
解决方案
你有没有考虑LINQ到实体?它可能不是值得你的项目进行转换,这取决于你有多远沿着你,或有多少ORM开销舒服的麻烦。然而,这个确切的情况就不会是一个问题,在LINQ to实体。它不会尝试更新加载时,它的对象只读属性,因为它们没有被明确映射,它们仅仅是扩展属性。
此外,您还可以通过使用替代性getter函数去老派/ java的路径。公共BOOL getIsPaidInFull(){返回NetTotal <=0米;}。
或者你可以玩与被继承的子类实现只读属性,但可能引入各种型号的问题。
其他提示
public bool IsPaidInFull
{
get { return NetTotal <= 0m; }
private set { ;}
}
不隶属于 StackOverflow