2008-12-10 63 views
0

我試圖創建一個情侶對錶之間的可選關聯。我有一張名爲Invoice的表。發票表格通過CustomerId字段具有對Customer表的FK引用。 「發票」表格還具有通過ProjectId字段未強制實施的項目的FK參考。如何在Linq-To-Sql類中創建可選的關聯?

反正是有建立我的LINQ到SQL類有發票和項目表之間的可選的關聯?

我希望能夠通過這種關聯摘下項目的名稱,如果可用。

澄清

是否有可能在DBML文件中設置呢?我有一個擴展了Invoice實體的部分類,希望能夠創建一個名爲ProjectName的屬性,它包裝了Invoice.Project.Name。

只是想知道,如果這甚至有可能,或者如果我不得不返回左側查詢加盟值。

回答

0

我想我想通了這一點......它比我想象的方式更簡單。我需要檢查的部分類中的關係是否爲null,這擴展了LinqToSql類。

喜歡的東西:

public string ModifiedByName 
    { 
     get 
     { 
      if (this.ModifiedByUser == null) 
       return string.Empty; 
      else 
       return this.ModifiedByUser.FirstName + " " + this.ModifiedByUser.LastName; 
     } 
    } 

    public string CreatedByName 
    { 
     get 
     { 
      if (this.CreatedByUser == null) 
       return string.Empty; 
      else 
       return this.CreatedByUser.FirstName + " " + this.CreatedByUser.LastName; 
     } 
    } 
0

這應該這樣做(VB語法):

Dim results = _ 
    From i in context.Invoice _ 
    Join c in context.Customer On i.CustomerId Equals c.CustomerId _ 
    Group Join p in context.Project On i.ProjectId Equals p.ProjectId Into g = Group _ 
    Select i.InvoiceName, c.CustomerName, ProjectName = (From x In g Select x.Name).SingleOrDefault 
+0

反正在DBML文件中設置呢? – mattruma 2008-12-10 04:06:49