2012-04-02 89 views
0

我開始了與EF,並且需要一些基本準則EF:更新SQL視圖或添加自定義屬性

我有一個命名爲名字,姓氏,出生日期和更

現在個人表我綁定一個數據網格(在WPF中)和所有罰款

但我如何創建一個全名(姓,名)列?

在我以前的項目(MS訪問,asp.net)我會做一個視圖名稱viwpersons並有所有的計算/計算列。然後將UI綁定到視圖

與EF,如果你綁定視圖,則有幾個問題

  1. 你必須一次又一次地去除definingquery,否則你不能更新
  2. 時用戶編輯姓氏或firstame,沒有更新的領域,直到整個數據網格是反彈或刷新
  3. 插入和刪除是完全不可能的
  4. 即使在編輯數據網格連接表,所以我們可以插入和刪除,ch安格斯不會反映在dropdownlists等各地的應用程序,因爲它們連接到視圖,而不是表的ObservableCollection

這麼幾個星期後,黑客這條路上,我決定去「概念」或「邏輯」或其他。我從我的edmx中刪除了視圖,並且將僅與表格一起工作。我試圖將我的第一個計算列添加到表中。按照許多博客我將此添加到我的代碼

Partial Class Person 
    <System.Runtime.Serialization.DataMember()> ReadOnly Property FullName 
    Get 
     Return LastName & ", " & FirstName 
    End Get 
End Property 
End Class 

但這種方法也有一些問題

  1. 試圖在此過濾器,給我一個錯誤Late binding operations cannot be converted to an expression tree. [現在,我相信這是真的,因爲有沒有辦法,MSSQL可以在這個領域不存在有]
  2. 沒有其他應用程序或服務可以直接使用該數據庫,因爲它不具有任何的意見,如果所有的邏輯將在EF代碼
  3. 性能放在過濾,禁用代碼中的字段所有的「設置基於」 MSSQL的功率相加,並加入數百萬條記錄(上面的例子中的無關,但最終我有更多的字段ID需要,如餘額)

所以什麼是正確的,首選,這樣做的「EF方式」?

一切順利,我很欣賞你的建議

+0

任何人有任何想法?我真的需要一個很好的答案。謝謝 – 2012-04-15 09:28:59

回答

0

對於給定的,將計算數據庫中的字段滿足您的需求的例子嗎?

alter table person add fullname as lastname + ', ' + firstname(SQL Server)的

+0

這個簡單的要求是的。但我的問題更廣泛。即通過「聯合查詢」計算的人員餘額,然後通過「內部聯接」連接到人員表格。我想在顯示人員的數據網格中顯示此列,但這些問題比比皆是...... – 2012-04-03 07:28:03