我有以下课程:
public class Contact
{
public int ContactID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
以下数据:
现在我需要让用户搜索这样的联系人:
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”。仅支持初始值设定项,实体成员和实体导航属性。
有什么想法吗?
感谢。
答案 0 :(得分:1)
我认为您不需要创建未映射的属性来实现您的需求。你可以试试这个:
var someone = "John Doe";
var contacts=context.Contacts.Where(c => String.Concat(c.FirstName, " ", p.LastName).Contains(someone));
EF支持String.Concact
方法。