如何判断一个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 { ;}
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top