2013-11-14 27 views
0

我有一個表用戶用外鍵到另一個表部門。 User對象具有部門的POCO。我可以選擇與部門,POCO被填充有以下Simple.Data通過-ID查詢的用戶:預定義加入Simple.Data

db.Users.With(db.Users.Departments.As("Department")).FindByUserID(userId); 

現在我不但負荷用戶可以通過ID,但也通過名稱,導致下面的查詢:

db.Users.With(db.Users.Departments.As("Department")).FindByUserName(userName); 

爲了讓幹了,我想我可能會重構這個連接成一個變量,並重復使用它:

var userJoinedWithDepartment = db.Users.With(db.Users.Departments.As("Department")); 
userJoinedWithDepartment.FindByUserID(userId); 

但是引起麻煩。在其他一些地方,我得到了關於已經打開的事務的錯誤,這導致我相信通過定義已經在後臺執行某些事情的變量。我看不到正在執行的SQL語句。

有沒有辦法解決這個問題並重新使用連接的定義?

回答

0

解決方案不是使其成爲var而是dynamic

dynamic userJoinedWithDepartment = db.Users.With(db.Users.Departments.As("Department")); 
userJoinedWithDepartment.FindByUserID(userId);