从EntitySet仅返回一个对象

时间:2019-04-03 18:08:03

标签: linq-to-sql

我在Linq中映射了以下两个表:合同。 我还有一个全局变量 DateTime DateOfInteres

当我映射Persons表时,我希望有一个属性返回一个单个合同:DateOfInteres上的有效合同。

合同基本上具有以下三个属性: bool IsActive,DateTime StartDate,DateTime EndDate

映射表后,我在Person类中定义了这个EntitySet:

EntitySet _lct = new EntitySet(); [Association(Storage =“ _ lct”,ThisKey =“ Id”,OtherKey =“ PersonId”]

通常,下一步是定义包含该人的所有合同的公共IEnumerable合同,但我需要这样做:

一个 公共合同ActiveContract 表示具有以下内容的合同: (IsActive == true)&&(StartDate <= DateOf Interes)&&(EndDate> = 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();
    }
}

1 个答案:

答案 0 :(得分:0)

Contacts.Where(x=> [*PutYourConditionsHere*]).GroupBy(x => x.PersonID).Select(x => x.First())