联机到实体查询中的选择子句出现问题

本文关键字:子句 问题 选择 实体 查询 联机 | 更新日期: 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();