【发布时间】:2019-04-03 18:08:03
【问题描述】:
我在 Linq 中映射了这两个表:Persons 和 Contracts。 我还有一个全局变量 DateTime DateOfInteres。
当我映射 Persons 表时,我希望有一个属性返回 single 合同:DateOfInteres 的有效合同。
基本上,Contracts 具有以下三个属性:bool IsActive、DateTime StartDate、DateTime EndDate。
映射表后,我在 Person 类中定义了这个 EntitySet:
EntitySet _lct = new EntitySet(); [关联(Storage="_lct", ThisKey="Id", OtherKey="PersonId"]
通常下一步是定义一个 public IEnumerable Contracts 包含该人的所有合同,但我需要这个:
one public Contract ActiveContract 表示与以下内容的合同: (IsActive==true) && ( StartDate = DateOfInteres)
因此,当创建 MVVM 对象时,ActiveContract 及其属性可以立即访问。
知道如何实现吗?
谢谢, 丹尼尔
====== 我认为是这样的:
private EntitySet<Contract> _lctr = new EntitySet<Contract>();
[Association(Storage = "_lctr", ThisKey = "Id", OtherKey = "PersonId")]
public Contract ActiveContract
{
get {
return _lctr.Where(ct => (ct.IsActive == true) &&
( ct.StartDate <= DateOf Interes ) && ( ct.EndDate >= DateOfInteres))
.OrderByDescending(ct => ct.DataInceput)
.FirstOrDefault();
}
}
【问题讨论】:
标签: linq-to-sql