1
我上的存儲庫模式工作,其中API如下所示:通用庫LINQ2SQL阻抗不匹配的問題
var visitor = repository.Find(x => x.EmailAddress == credentials.EmailAddress &&
x.Password == credentials.Password);
其中訪問者是一個域對象,x表示此域對象。對信息庫查找方法的方法簽名是:
T Find(Func<T, bool> query);
這一切都是美好的,直到我嘗試,因爲LINQ2SQL創建其自己的對象與LINQ2SQL使用此,因此,當我想打電話:
context.visitors.FirstOrDefault(query);
有一個類型不匹配,因爲LINQ2SQL希望它創建的類型,而不是我傳遞的功能的功能
是的......我不想使用Linq2SQL類作爲我的域對象,因爲我可能想要添加行爲到我的域對象,我也可能想限制成員的可訪問性。 – 2009-08-22 18:18:27
添加行爲很簡單:生成的類是*部分類*,這意味着您可以將自己的行爲添加到單獨的文件中,但仍然在同一個類中。您可以在dbml文件中指定屬性可訪問性。 – 2009-08-22 19:22:27
這看起來似乎比將表達式樹從一種類型轉換爲另一種更簡單得多。我將採用這種方法並通過界面限制可見性和訪問。 – 2009-08-23 14:10:55