我在我的LinqToSql模型上有一個非常有趣的問題。在我的一些表格中,我有對其他表格的引用,而在LinqToSql中,這是由EnitiyRef類表示的,當您嘗試訪問引用表格時,LinqToSql將從數據庫加載引用。LinqToSql引用的實體會拋出NullReferenceException
在我的開發機器上一切正常(引用加載完美),但昨天晚上我將修改上傳到我們的生產服務器,並嘗試訪問我的表上的引用時,開始獲取NullReferenceExceptions。
示例代碼:
var sale = db.Sales.Single(s => s.ID == 1);
string username = sale.User.Name; // User is a reference to a User table
// LinqToSql will automatically load the
// row and access the fields i need.
// On my server the sale.User throws an exception that its null (User) but the user
// is definitly in the database (there is even a FK constraint from Sale to User)
起初我還以爲這我的DataContext得到GC'd但我仔細檢查了一切沒有結果(除了它的作品在我的箱子)。
(一切都是在服務器和我的盒子,同樣的dll的,在同一個相同的數據庫架構等) (其實我複製了整個DBF文件到我的服務器,以便其完全相同的架構)
因此它被編譯在你的機器上,編譯好的程序在你的機器上運行正常,但是在生產服務器上崩潰了? (意思是你使用相同的二進制文件,或者只是來自同一個源文件) – Sam 2008-10-08 13:22:42
相同的二進制文件,所有東西都在我的盒子上編譯。 – 2008-10-08 13:34:57