Table1: tblAddressType (Id, Name)
Table2: tblAddressDtls (Id, AddressTypeId, Address1)
私のデータベースで次のテーブルを持っています上記の表の
SQL Query:
select t1.*, t2.*
from tblAddressType t1
left outer join tblAddressDtls t2 on t1.Id = t2.AddressTypeId and t2.Id = 1;
次のように、私はPOCOエンティティクラスを作成しました:
[Table("tblAddressType ")]
public partial class AddressType
{
[Key]
[Column(Name="ID")]
public int ID { get; set; }
[Required]
[Column(Name = "Name")]
public virtual string Name {get; set;}
[Include]
[Association("AddressTypeAddress", "ID", "AddressTypeId")]
public virtual ICollection<Address> Addresses { get; set; }
}
[Table("tblAddress", SchemaName="dbo")]
public class Address
{
[Column(Name="ID")]
public int ID { get; set; }
[Column(Name = "AddressTypeId")]
public int? AddressTypeId{ get; set; }
[Column(Name = "Address1")]
public string Address1{ get; set; }
[Include]
[Association("AddressTypeAddress", "AddressTypeId", "ID", IsForeignKey = true)]
public virtual AddressType AddressType { get; set; }
}
を
と、上記のSQLクエリに示すように、データをフェッチするために、私は私のサービスコードで、次のLINQクエリを書かれているし、必要に応じてこのクエリは私にデータを返します。
var qry = (from p in dbContext.AddressTypes
join pa in (from t in dbContext.Addresses
where t.ID == 1 select t)
on p.ID equals pa.AddressTypeId into ppa
from t in ppa.DefaultIfEmpty()
select t).AsQueryable();
さて、私が書きたいですAdd/Editアドレス画面のドロップダウンボックスに "AddressType"オブジェクトのリストをバインドする必要があるため、一致するAddressオブジェクトとAddressTypeオブジェクトのリストを返すべきである "GetAddressById(int addressId)"という名前のドメインサービスメソッド。
I wanted to include and fetch list of "AddressType" objects data at the time of
fetching Address object data itself to avoid round-trip to server
in my silverlight client app.
この機能を実現するための最良の方法を教えてください。
私は自分の答えを更新しました。もしこれがあなたがしたいことをしていなければ、それを修正してください。 – Joakim