gpt4 book ai didi

asp.net - 如何将非数据库属性添加到 Entity Framework 实体?

转载 作者:行者123 更新时间:2023-12-02 00:31:49 24 4
gpt4 key购买 nike

我的问题:我想向我的 Entity Framework 实体(在我的 ASP.NET 项目中)添加一个简单类型的属性(例如字符串、整数、 double ),它不与任何字段相关联在与实体对应的数据库表中。我希望能够在我的 ASP.NET 项目中设置这个属性的值,并让属性的内容自动神奇地发送到 Silverlight 客户端,通过 RIA 服务获取实体。

我该怎么做?

注意:如果这样做更容易,对于我的特定实例,我不需要将实体保存回数据库。此外,如果这适用于 View 和表格,那就太好了。

我的设置:我使用的是 Silverlight 4、Entity Framework 4 和 RIA 服务。它以正常方式设置:Silverlight 客户端应用程序和 ASP.NET 服务器应用程序;我正在从数据库生成我的 EF 模型。 RIA 服务正在 Silverlight 客户端上生成实体和数据库访问方法。

我的例子:

数据库:客户表

  • 客户ID
  • 客户姓名

EF 生成的实体(ASP.NET 服务器端):客户类

  • 公共(public)属性 CustomerID 为整数
  • 作为字符串的公共(public)属性 CustomerName

我想向与数据库无关的客户实体添加一个属性:

  • 公共(public)属性 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

最佳答案

使用 T4s 为实体生成部分类(例如 Visual Studio 扩展库中的 POCOs T4s)然后添加一个文件,例如MyEntity.Part2.cs 与生成的文件具有相同的部分类,但包含新属性。

有关 Google 部分类 C# 的更多信息。

关于asp.net - 如何将非数据库属性添加到 Entity Framework 实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6431145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com