次の実用的な SQL クエリがあります。
select a.Id, a.Name
from Addresses a join Companies c
on c.AddressId = a.Id
or c.MailAddressId = a.Id
or c.Id = a.CompanyId
where c.Id = *CompanyId* and a.Name = *AddressName*
指定された Address 名を持つ Address が、指定された Company ID を持つ会社にリンクされているかどうかをチェックします。
これを LINQ for EF で表現するにはどうすればよいですか?
更新: Address クラスと Company クラスは次のとおりです (この質問に関連する詳細のみが含まれています)。
public class Address
{
public int Id {get; set;}
public string Name {get; set;}
public int? CompanyId {get; set;}
public virtual Company {get; set;}
}
public class Company
{
public int Id {get; set;}
public string Name {get; set;}
public int AddressId {get; set;}
public virtual Address Address {get; set;}
public int? MailAddressId {get; set;}
public virtual Address MailAddress {get; set;}
public virtual ICollection<Address> DeliveryAddresses {get; set;}
}
ありがとうございました。