如何解决如何将非数据库属性添加到实体框架实体?
| 我的问题:我想向我的Entity Framework实体(在我的ASP.NET项目中)添加一个简单的类型化属性(例如string,int,double),该属性不与对应于该实体的数据库表中的任何字段相关联。我希望能够在我的ASP.NET项目中设置此属性的值,并将该属性的内容自动神奇地发送到Silverlight客户端,以通过RIA服务获取实体。 我该怎么做呢? 注意:如果这样可以简化操作,则对于我的特定实例,我不需要将实体保存回数据库。同样,如果这对视图和表都起作用,那将是很棒的。 我的设置:我正在使用Silverlight 4,实体框架4和RIA服务。它以常规方式设置:Silverlight客户端应用程序和ASP.NET服务器应用程序;我正在从数据库中生成我的EF模型。 RIA服务正在Silverlight客户端上生成实体和数据库访问方法。 我的例子: 数据库:客户表 客户ID 顾客姓名 EF生成的实体(ASP.NET服务器端):客户类 公共财产客户ID为整数 公共属性CustomerName为字符串 我想向与数据库无关的客户实体添加一个属性: 公共属性UnicornColor作为字符串 在我的域服务(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
解决方法
使用T4生成实体的部分类(例如,Visual Studio扩展库中的POCO T4),然后添加文件,例如MyEntity.Part2.cs具有与生成的文件相同的部分类,但是包含新的属性。
有关更多信息,请参见Google偏类C#。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。