gpt4 book ai didi

c# - Linq to Sql 查询两次返回相同的记录

转载 作者:太空狗 更新时间:2023-10-30 01:59:24 24 4
gpt4 key购买 nike

我正在使用 Linq to Sql 查询数据库。这是我的数据:

     Name      LastName        Age
------------------------------
1 Abc Def 15
2 Abc Def 17
3 xyz wss 17

我的 Linq to Sql 代码是:

Context _context = new Context("Conn_String");
var table = _context.GetTable<Person>();
List<Person> persons = table.Where<Person>(p => p.Name == "Abc" && p.LastName == "Def").ToList<Person>();

根据我的理解,这个查询应该返回 2 条记录。即记录 1 和记录 2。但它返回记录 1 两次。如果这是 Linq to Sql 中的错误或我做错了什么,您能告诉我吗?

编辑:

这是我的 DAL 代码:

public List<T> GetList<T>(Expression<Func<T, bool>> predicate) where T : class
{
try
{
Context _context = new Context("Conn_String");
var table = _context.GetTable<T>();
return table.Where<T>(predicate).ToList<T>();
}
catch (Exception ex)
{
throw ex;
}
}

我将此方法称为:

List<Person> person = DAL.GetList<Person>(p => p.Name == "Abc" && p.LastName == "Def");

foreach(var Person in persons )
{
// Print(person.Age);
}

最佳答案

我自己也遇到过这个问题。检查模型将哪个属性推断为您的 Person 类的实体键。

如果它有一个非唯一列作为实体键,它将使用与使用 ToList() 转换时每行的值匹配的第一行

关于c# - Linq to Sql 查询两次返回相同的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13438583/

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