执行LINQ查询而不使用EF中的NotMapped属性
本文关键字:EF 中的 NotMapped 属性 LINQ 查询 执行 | 更新日期: 2023-09-27 18:03:26
我有以下类:
public class Contact
{
public int ContactID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
和以下数据:
- 1/John/Doe
- 2/Mike/Tyson 3/John/Mc Enroe
- 4/Stef/Doe
现在我需要让用户像这样搜索联系人:
-
John Doe
>获取所有名字为John
和姓氏为Doe
的联系人 -
John
>获取名字为John
的所有联系人 -
Doe
>获取姓氏为Doe
的所有联系人 - …
我试图添加一个NotMapped
元素到我的类,并执行我对这个(完整)名称的搜索,但LINQ查询不与NotMapped
元素工作。
[NotMapped]
public string Name {
get {
return FirstName + " " + LastName;
}
}
var someone = "John Doe";
requests.Where(s => s.Contact.Name.Contains(someone));
在LINQ to Entities中不支持指定的类型成员'Name'。只支持初始化式、实体成员和实体导航属性。
任何想法?
谢谢。
我认为您不需要创建一个未映射的属性来实现您所需要的。你可以试试:
var someone = "John Doe";
var contacts=context.Contacts.Where(c => String.Concat(c.FirstName, " ", p.LastName).Contains(someone));
EF支持String.Concact
方法