將telerik RadGrid和普通香草ASP.NET GridView綁定到以下LINQ to實體查詢的結果時遇到問題。在這兩種情況下,網格都包含正確的行數,但只有第一行的數據在所有其他行中重複。我直接將這個代碼的返回值分配給網格上的DataSource屬性。LINQ to Entities綁定數據時出現重複行
public IEnumerable<DirectoryPersonEntry> FindPersons(string searchTerm)
{
DirectoryEntities dents = new DirectoryEntities();
return from dp in dents.DirectoryPersonEntrySet
where dp.LastName.StartsWith(searchTerm) || dp.Extension.StartsWith(searchTerm)
orderby dp.LastName, dp.Extension
select dp;
}
新增:這是交替的平ADO.NET代碼工作:
DataTable ret = new DataTable();
using (SqlConnection sqn = new SqlConnection(ConfigurationManager.ConnectionStrings["WaveAdo"].ConnectionString))
{
SqlDataAdapter adap = new SqlDataAdapter("select * from DirectoryPersonList where LastName like '" + searchTerm + "%' order by LastName ", sqn);
sqn.Open();
adap.Fill(ret);
}
return ret;
更多:
- 通過LINQ發送到SQL Server的查詢工作。
- 在返回它們之前迭代LINQ查詢結果導致相同的重複。
- 在綁定之前迭代調用方法中的LINQ結果會導致相同的重複。
UPDATE: 上非常符合邏輯和裝修建議基於從馬克下方碎石,我發現EF設計已在實體鍵爲我的實體類做了一個非常沒有受過教育的猜測,第一場在其部門的名單中,其中所有其他記錄中只有大約7個條目共享。
這確實是重複的原因。如果只有我可以更改或刪除實體關鍵字,但是這位擁有Etch-a-Sketch所有業務邏輯的EF設計師非常忠於重複它的關鍵選擇,同時嘲笑我鎖在外面,請求更改關鍵字。
您確定該表不包含重複項嗎?該查詢是正確的。 – 2009-06-17 06:17:10
@亞歷山大,是的,我確定。同一視圖上的普通DataTable查詢會導致網格正確綁定。 – ProfK 2009-06-17 08:28:20
請顯示更多代碼。工作和問題。 – 2009-06-19 05:03:38