gpt4 book ai didi

c# - 在 EF 中不使用 NotMapped 属性执行 LINQ 查询

转载 作者:行者123 更新时间:2023-11-30 17:43:02 25 4
gpt4 key购买 nike

我有以下类(class):

public class Contact
{
public int ContactID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}

以及以下数据:

  • 1/约翰/Doe
  • 2/迈克/泰森
  • 3/约翰/麦恩罗
  • 4/史蒂夫/母鹿

现在我需要让用户像这样搜索联系人:

  • 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 不支持指定的类型成员“名称”。仅支持初始化器、实体成员和实体导航属性。

有什么想法吗?

谢谢。

最佳答案

我认为您不需要创建未映射的属性来实现您的需要。你可以试试这个:

var someone = "John Doe";
var contacts=context.Contacts.Where(c => String.Concat(c.FirstName, " ", p.LastName).Contains(someone));

EF 支持 String.Concact 方法。

关于c# - 在 EF 中不使用 NotMapped 属性执行 LINQ 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31479209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com