У меня есть объект D
, созданный из автоматического сопоставления таблицы D
. Я добавил к нему следующее свойство в частичном классе.
public Address PhysicalAddress
{
get { return this.Addresses.FirstOrDefault(a => a.AddrType == "PHY"); }
}
Это прекрасно работает само по себе.
Я хотел бы написать на нем следующий запрос linq:
var result = from d in _db.D
where d.PhysicalAddress.State == addr.State
select d;
Что не работает. Выдает NotSupportedException
, когда я пытаюсь перебрать result
.
Однако работает следующее:
var result = from d in _db.D
where d.Addresses.Single(dAddr => dAddr.AddrType == "PHY").State == addr.State
select d;
Почему Linq to Sql работает таким образом? Есть ли способ переписать мою собственность, чтобы она работала?