成员没有受支持的SQL转换

我收到以下错误:

错误消息:成员’Company.ProductCore.Core.Domain.Account.Email’没有受支持的SQL转换。

我的方法看起来像这样:

public Account GetAccountByEmail(string email) { Account account; using (WorkbookDataContext dc = _conn.GetContext()) { account = ( from a in dc.Accounts join em in dc.Emails on a.AccountId equals em.AccountId where a.Email.EmailAddress == email select a).FirstOrDefault(); } return account; } 

我的帐户类有一个公开电子邮件的getter / setter:

  public Email Email { get { return _email; } set { _email = value; } } 

我的电子邮件是一个LINQ对象。

我有一种感觉,问题是我正在使用LINQ对象的电子邮件属性? 我是LINQ的新手,我不确定为什么会这样。

帮助表示感谢,谢谢……

认为这就是你所追求的(你需要通过已知的映射直接引用电子邮件地址),但我不能100%确定你不知道你的结构:

  account = (from a in dc.Accounts join em in dc.Emails on a.AccountId equals em.AccountId where em.EmailAddress == email select a).FirstOrDefault(); 

为什么? 部分:
简而言之,LINQ没有该属性的映射知识……并且由于它不知道而无法进行SQL查询,因此当它尝试从表达式树生成查询时会出现运行时错误。

你不能在查询中使用属性,除非LINQ知道它映射到哪个表/列/函数,没有这个…它根本无法将它转换为SQL或从SQL转换。