我查詢使用LINQ到SQL數據庫。這裏是我的數據:LINQ到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中的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);
}
機會是有什麼毛病你診斷相匹配的值的第一行的實體鍵。請說明你如何確定相同的記錄被返回兩次。 –
是的。我多年來在數據倉庫項目中廣泛使用LINQ(儘管不是SQL),並且從未見過這種情況。我將開始調試SQL級別 - 請參閱數據庫上生成的語句,然後通過在管理應用程序中運行它來查看SQL Server返回的結果。這是99.9%的錯誤診斷。 – TomTom
返回的記錄顯示兩個記錄的Age = 15。 –