我确定其他人已经问过这个,但我搜索了我能想到的解决方案。
我有以下数据模型来匹配我的SQL数据库中的表:
public class ProfileDetailModel
{
public string id { get; set; }
public string name { get; set; }
public StyleList[] styleList { get; set; }
public FabricList[] fabricList { get; set; }
}
public class StyleList
{
public string id { get; set; }
public string name { get; set; }
}
public class FabricList
{
public string id { get; set; }
public string fabricName { get; set; }
}
这是当前的查询代码:
var query = (from t in db.tblProfiles
select new ProfileDetailModel()
{
id = t.id,
name = t.name
});
var querylist = await query.ToListAsync();
(原型linq查询下面的样式和结构)
var styleQuery = (from t in db.tblStyles
select new styleList()
{
id = t.id,
name = t.name
});
var fabricQuery = (from t in db.tblFabrics
select new fabricList()
{
id = t.id,
name = t.name
});
if (queryList.Count > 0)
{
var item = queryList[0];
item.styleList = styleQuery;
item.fabricList = fabricQuery;
}
我将在styleList和fabricList中有一个profileDetailModel,其中包含多个项目。 EG。
ProfileDetailModel
数据:裤子
styleList:Bell Bottom,Straight Leg,Boot fit
fabricList:jean-blue,jean-black,plaid
以上三个模型都是我的数据库中的表。我可以发出3个单独的查询来读取数据然后在事后组装。但有没有办法我可以做一个linq查询,一次性在主查询中包含两个数组?
答案 0 :(得分:0)
试试这个:
var newQuery = (from p in db.tblProfiles
select p)
.AsEnumerable()
.Select(x => new ProfileDetailModel()
{
id = x.id,
name = x.name,
styleList = styleQuery,
fabricList = fabricQuery
});