【发布时间】:2011-03-16 12:30:09
【问题描述】:
我的数据库中有以下表格
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();
现在,我想编写一个名为“GetAddressById(int addressId)”的域服务方法,它应该返回匹配的 Address 对象以及 AddressType 对象列表,因为我需要将“AddressType”对象列表绑定到下拉列表添加/编辑地址屏幕中的框。
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.
请建议我实现此功能的最佳方法?
【问题讨论】:
-
我已经更新了我的答案,如果这不是你想要的,请纠正我,如果它确实有帮助,那么接受它的答案。
标签: silverlight linq frameworks join entity