我现在有一个名为Basdiseasecure的实体,其中包含ComdrugList:
public class Basdiseasecure
{
public Guid Disease_cure_id { get; set; } //pk
public Guid? Eartag_id { get; set; }
public DateTime? Cure_time { get; set; }
public string Cure_method { get; set; }
public string Cure_result { get; set; }
public string Combdrug_idlist { get; set; }
public List<Bascombdrug> ComdrugList { get; set; }
}
Bascombdrug实体列出如下:
public class Bascombdrug
{
public Guid Combdrugid { get; set; } //pk
public string Combdrugname { get; set; }
public string Combdrugnote { get; set; }
public DateTime Updatetime { get; set; }
}
在实体Basdiseasecure中,Combdrug_idlist存储Combdrugid并用逗号分开它们(如F47EF316-2308-4673-AFA4-D5FA81E520D8,F47EF316-2308-4673-AFA4-D5FA81E52000)。下面是我用来通过Disease_cure_id获取Basdiseasecure实体的代码:
[WebMethod]
public List<Basdiseasecure> GetDiseaseCureInfo(Guid id)
{
IQueryable<Basdiseasecure> getDiseaseCure;
using (GDeerGardenEntities entities = new GDeerGardenEntities())
{
getDiseaseCure = from p in entities.bus_disease_cure
select new Basdiseasecure()
{
Disease_cure_id = p.disease_cure_id,
Eartag_id = p.eartag_id,
Cure_time = p.cure_time,
Cure_method = p.cure_method,
Cure_result = p.cure_result,
Combdrug_idlist = p.combdrug_idlist
//How can I build ComdrugList here ?
};
return getDiseaseCure.ToList();
}
}
我不知道如何根据Combdrug_idlist字段构建我的Bascombdrug列表。 有什么好办法吗? THX。
修改
我在这里得到了一个方法:
首先返回没有ComdrugList的列表。
第二次循环Combdrug_idlist字段并获取ID
第三,使用linq逐个使用id提取相关信息,并将它们组成列出的实体。
以上是我目前使用的方法,我需要为这种情况编写很多代码。这就是我问这个问题的原因。
答案 0 :(得分:1)
试试这个(假设entities.bus_comb_drug
是用于创建Bascombdrug
实体的源集合):
getDiseaseCure =
from p in entities.bus_disease_cure
select new Basdiseasecure()
{
// other properties
ComdrugList =
(from d in entities.bus_comb_drug
join ids in p.combdrug_idlist.Split(',') on
d.combdrugid.ToString().ToLower() equals ids.ToLower()
select new Bascombdrug()
{
Combdrugid = d.combdrugid
// other properties
}).ToList()
};