联机到实体查询中的选择子句出现问题
本文关键字:子句 问题 选择 实体 查询 联机 | 更新日期: 2023-09-27 18:07:34
你好,我使用代码优先的方法,我定义了以下模型:
public partial class tmmodel
{
public tmmodel()
{
this.tmmodel_L10n = new HashSet<tmmodel_L10n>();
}
public int id { get; set; }
public int Order { get; set; }
public bool Active { get; set; }
public virtual ICollection<tmmodel_L10n> tmmodel_L10n { get; set; }
}
public partial class tmmodel_L10n
{
public int modelid { get; set; }
public int CultureId { get; set; }
public string Title { get; set; }
public string Text { get; set; }
public virtual tmmodel tmmodel { get; set; }
}
所以我想在一个匿名类-我的tmodel的id, Active和order属性以及tmodel_L10中的标题:
与Linq我设法得到的结果-但当我试图使用Linq - TO - sql -我有一些问题:
var items = from i in dc.tmmodel
join l10n in dc.tmmodel_L10n on new { i.id, cid = 1 } equals new { l10n.modelid, cid = l10n.CultureId }
select new
{
id = i.id,
i.Order,
i.Active,
l10n.Title,
};
这是我的- linq到实体查询,你可以看到我没有任何访问标题属性:
var linqtosqlitems = dc.tmmodel
.Include(x => x.tmmodel_L10n)
.Select(l => new {id = l.id,l.Active,**l.tmmodel_L10n.??**}).ToList();
通过使用include Linq创建一个可枚举的"子"表,因为它可以是一对多的关系。如果你确定"子表"中只有一条记录,你可以这样做:
var linqtosqlitems = dc.tmmodel
.Include(x => x.tmmodel_L10n)
.Select(l => new {id = l.id,l.Active,l.tmmodel_L10n.FirstOrDefault().Title}).ToList();