我的問題:我想添加一個簡單的類型屬性(例如string,int,double)到我的實體框架實體(在我的ASP.NET項目中),它與數據庫表中任何對應的字段沒有關聯到實體。我希望能夠在我的ASP.NET項目中設置此屬性的值,並將屬性的內容自動發送到Silverlight客戶端,並通過RIA Services獲取實體。如何將非數據庫屬性添加到實體框架實體?
我該怎麼做?
備註:如果這樣可以更容易,對於我的特定實例,我不需要將實體保存回數據庫。另外,如果這適用於視圖和表格,那就太好了。
我的設置:我使用的是Silverlight 4,Entity Framework 4和RIA Services。它以正常的方式進行設置:Silverlight客戶端應用程序和ASP.NET服務器應用程序;我正在從數據庫生成我的EF模型。 RIA服務正在Silverlight客戶端上生成實體和數據庫訪問方法。
我的例子:
數據庫:客戶表
- 的CustomerID
- 客戶名稱
EF生成的實體(ASP.NET服務器端):客戶類
- 公共屬性CustomerID作爲整數
- 公共財產作爲客戶名稱字符串
我想屬性添加到未與數據庫相關聯的客戶實體:
- 公共財產UnicornColor as string
在我的域名服務(ASP.NET服務器端)中,我將自己填寫新屬性:
Public Function GetCustomers() As IQueryable(Of Customer)
Dim customers as IQueryable(of Customer) = Me.ObjectContext.Customers
For each c as Customer in customers
c.UnicornColor = "Green"
Next
return customers
End Function
在客戶端,我想這個新的屬性和它的價值在那裏,當我運行我的查詢:
Public Sub LoadCustomers()
myContext.Load(myContext.GetCustomersQuery, AddressOf CustomersLoaded, Nothing)
End Sub
Public Sub CustomersLoaded(ByVal loadOp as LoadOperation(Of Customer))
Dim customers as IEnumerable(Of Customer) = loadOp.Entities
For Each c as Customer in customers
dim color as string = c.UnicornColor
Next
End Sub
這是Code First還是什麼? – OpticalDelusion
我正在從現有數據庫生成我的EF模型。 – sparks
爲了更清楚地說明,我正在使用ADO.NET實體數據模型模板和實體數據模型嚮導來生成我的模型和實體,如下面的「顯示數據」部分所述:http://msdn.microsoft。com/en-us/library/ff713719%28v = VS.91%29.aspx我也按照演練中所述創建了我的域服務。 – sparks