如何为客户特定数据使用通用变量

Posted

技术标签:

【中文标题】如何为客户特定数据使用通用变量【英文标题】:How Do I Use Generic Variables for Customer Specific Data 【发布时间】:2017-05-25 21:22:27 【问题描述】:

我创建了一个包含常用变量的通用 dll。我有用户定义的占位符字段,因此我们可以保存客户特定的数据。此 dll 将用于特定于客户端的应用程序。

如何将这些通用变量映射到相关的 sql 表字段,以便我们可以操作自定义数据库?我想避免编写自定义查询。

像 dapper 这样的 ORM 在这里有用吗?

编辑:根据 danihp 的回复,我已经开始研究实体框架的工作。看起来很有希望。我推断使用 Fluent API 我可以将此 dll 移植到独特的应用程序中并传递一个 db 对象(而不是我的类?)来执行业务逻辑。

Public Class Runs
    Private _RunMailPeices As Dictionary(Of String, MailPiece) = New Dictionary(Of String, MailPiece)
    Private _run As Integer    
    Private MailDate As DateTime
    Public Property RunMailPeices As Dictionary(Of String, MailPiece)
        Get
            RunMailPeices = _RunMailPeices
        End Get
        Set(value As Dictionary(Of String, MailPiece))
            _RunMailPeices = value
        End Set
    End Property

    Public Property run As Integer
        Get
            run = _run
        End Get
        Set(value As Integer)
            _run = value
        End Set
    End Property
End Class

还有:

Public Class MailPiece

    Private _address1 As String = String.Empty
    Private _address2 As String = String.Empty
    Private _string1 As String = String.Empty
    Private _string2 As String = String.Empty
    Public Property Address1 As String
        Get
            Address1 = _address1
        End Get
        Set(value As String)
            _address1 = value
        End Set
    End Property

    Public Property Address2 As String
        Get
            Address2 = _address2
        End Get
        Set(value As String)
            _address2 = value
        End Set
    End Property
    Public Property String1 As String
        Get
            String1 = _string1
        End Get
        Set(value As String)
            _string1 = value
        End Set
    End Property

    Public Property String2 As String
        Get
            String2 = _string2
        End Get
        Set(value As String)
            _string2 = value
        End Set
    End Property
End Class

【问题讨论】:

我猜你的意思不是 NET 泛型,因为这与它们无关。似乎它会导致将数据输入和输出用于 DB I/O 的 DLL 的工作量比它保存的工作量要多。 这就是我想要弄清楚的。如果我能做到这一点,我可以利用很多其他的内部 dll。 【参考方案1】:

您正在寻找entity framework。您可以轻松地将您的类映射到表。它们之间只有 2 个相关的类。将这些类映射到具有实体框架的表非常容易。然后,您将避免编写查询,只需 LINQ 表达式和通过具有导航属性的表进行导航。

实体框架 (EF) 是一种对象关系映射器,它使 .NET 开发人员能够使用特定于域的对象来处理关系数据。它消除了开发人员通常需要编写的大部分数据访问代码的需要。

通常会创建一个数据访问层。 “Entity Framework is Microsoft’s recommended data access technology for new applications”

您的代码看起来很容易被 EF 处理,但如果不是,您可以编写新类来轻松持久化您的自定义类。

您可以在Entity Framework Fluent API with VB.NET通过示例 EF VB.NET 代码学习

【讨论】:

以上是关于如何为客户特定数据使用通用变量的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Web 统计模块处理大量数据

如何为使用 Cloud Firestore 的 Flutter 应用设置安全规则?

如何为每个客户端创建一个唯一的命名管道

如何为对象的特定变量添加管理员用户名和密码字段?

如何为R中向量的特定元素分配名称

如何为 Android Room 请求制作通用 AsyncTask