您好我正在使用代码优先方法,我定义了以下模型:
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 i MANAGED获取结果 - 但是当我尝试使用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引用查询,你可以看到我没有任何访问Title属性的权限:
var linqtosqlitems = dc.tmmodel
.Include(x => x.tmmodel_L10n)
.Select(l => new {id = l.id,l.Active,**l.tmmodel_L10n.??**}).ToList();
答案 0 :(得分:0)
通过使用include Linq创建“子”表的Enumarable,因为它可以是一对多的关系。如果您确定“子表”中只有一条记录,您可以这样:
var linqtosqlitems = dc.tmmodel
.Include(x => x.tmmodel_L10n)
.Select(l => new {id = l.id,l.Active,l.tmmodel_L10n.FirstOrDefault().Title}).ToList();