gpt4 book ai didi

c# - 支持用户定义的数据库字段的动态类

转载 作者:搜寻专家 更新时间:2023-10-30 20:55:22 25 4
gpt4 key购买 nike

我目前正在使用 C# 开发 WCF 服务,作为现有内部应用程序的基本 API。我正在开发的 API 特别侧重于从数据库中添加和删除记录。

但是,该应用程序允许最终用户通过在每个表中添加自定义字段来更改现有的数据库结构。

这意味着一个部门的 CUSTOMER 表可能如下所示:

Id | FirstName | LastName | City | State | FavColor

而另一个部门的 CUSTOMER 表是这样的:

Id | FirstName | LastName | City | State | FavFood | FavMovie

我将如何设计一个类来支持给定上述结构的用户定义 (Fav) 字段?

我考虑过使用字典来处理用户定义的字段:

public class Customer
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string City { get; set; }
public string State { get; set; }
public Dictionary<string, string> UserDefinedFields { get; set; }
}

是否有更好的(即更成熟/最佳实践)来处理此要求?

最佳答案

如果用户定义的字段是有界的,您很可能会使用类型描述符作为字段来继承。我将为此挖掘出一篇 Martin Fowler 文章。但是,为了使用垂直表(称为实体属性值)的可扩展性,我过去做过类似的事情。它工作得很好。

编辑:我突然想到,您还可以序列化实例并将其作为 blob/文本添加到持久性介质中。这样你就可以对模式相当松懈。我认为像 Mongo 这样的文档数据库对于这种类型的东西或 MSSQL 中的 BLOB 字段会有好处

关于c# - 支持用户定义的数据库字段的动态类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23348894/

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