我的问题:我想添加一个简单的类型属性(例如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