在我的數據庫中,讓步與企業有多對一的關係(每個讓步都有一個FirmID)。 SqlMetal已經捕獲了這種關係,並生成了適當的類,以便每個特許權擁有一個公司元素。如何正常處理Linq to SQL中的空外鍵?
From c as Concession in Db.Concessions _
Select _
c.ConcessionID, _
c.Title, _
c.Firm.Title
的問題是,在某些情況下,租界還沒有被分配到企業(C:我反對的查詢(這裏的簡化)與有關對應事務所信息一起返回減讓清單結合.FirmID爲空),所以c.Firm是什麼,我得到Object not set to an instance
等
我可以做如下連接解決這個問題:
From c As Concession In Db.Concessions _
Join f As Firm In Db.Firms On f.FirmID Equals c.FirmID _
Select _
c.ConcessionID, _
c.Title, _
Firm_Title = f.Title
這並不時拋出一個錯誤FirmID是空(Firm_Title只是一個空字符串),但它是不夠優雅:它不是面向對象的,並沒有充分利用Linq to SQL已經捕獲的所有關係智能。
有沒有更優雅的方式來處理這種情況?
我認爲你也可以這樣做:if(c.Firm.Title,String.Empty) – Kevin 2008-10-27 00:58:08
不,如果c.Firm沒有任何內容,則拋出「未將對象引用設置爲對象的實例」。 – 2008-10-27 01:02:02