2011-10-30 17 views
0

如何將計算列添加到模型類。如何在dbml中爲模型添加計算列

我有鑑於兩種型號,

  1. User
  2. City

User連接到CityCityID(FK contraint)和CityName處於City模型

我想要計算的合作因爲.rdlc報告似乎沒有從連接到User(在dbml中)的City模型中獲得值,因此User模型。

當我將新屬性添加到模型時,當使用該模型的linq查詢執行時,它會發生錯誤。

無效的列名稱UserCityName'

這意味着它試圖從User從數據庫中選擇CityName

謝謝。

回答

3

LinqToSQL將實體生成爲部分類,因此您可以通過添加新類並添加以下代碼,將其他列添加到實體中。

例子:

namespace YourEntityNameSpace 
{ 
    public partial class User 
    { 
     public string UserAdditionalText 
     { 
      get 
      { 
       // your code goes here 
      } 
     } 
    } 
} 

更新:

  1. 展開Model.dbml解決方案中的窗口,你會發現Model.dbml.layoutModel.designer.cs
  2. 打開Model.designer.cs,它包含從您的數據庫中自動生成的類
  3. 搜索文本public partial class User。現在你可以看到,自動生成的類是部分類,這意味着你可以在單獨的文件中定義你的類。 Read more
  4. 將新類添加到您的項目中,使用與您的自動生成文件中相同的名稱空間和類名。
  5. 將其他屬性添加到User類,您可以訪問自動生成的類中的所有屬性和成員。
+0

我從dbml設計器創建模型,並且dbml文件具有自動生成的模型類,在將來我將從dbml設計器進行更改時,在模型類中手動完成的更改不會丟失? –

+0

當然,你可以看看自動生成的模型類,它是部分的。你需要做的是向你的項目中添加新的類,然後將它的命名空間改爲你模型的命名空間(在我的答案中爲'YourEntityNameSpace')。 – Ekk

+0

所以你的意思是在不同的命名空間下創建單獨的類'User'? –