如何使用MVC和.net的实体框架在表中动态添加数据库字段

本文关键字:动态 添加 字段 数据库 框架 MVC 何使用 net 实体 | 更新日期: 2023-09-27 17:53:55

我正在开发一个。net应用程序,我有数据库可用。我有一个类别类,如:

public partial class Category
{
   public int CategoryId {get;set;}
   public string CategoryName {get;set;}
}

我如何添加动态字段到这个模型,从而到数据库?如果不可能,那么还有其他方法来解决我的问题吗?

我允许用户添加他想要添加的自定义字段。因此,我的数据库模式变成了

Category(CategoryId, CategoryName, CustomField1, CustomField2);

我怎么能做到这一点使用EF 5和MVC ?或者还有其他方法吗?

如何使用MVC和.net的实体框架在表中动态添加数据库字段

我将添加这个建议作为答案,因为我不认为动态地向数据库添加列是最好的主意。

在您的Category类中,添加另一种类型的列表,我们称之为CustomField。当您允许用户添加新字段时,只需将其粘贴到此列表

public partial class Category
{
   public int CategoryId {get;set;}
   public string CategoryName {get;set;}
   public IList<CustomField> CustomFields {get;set;}
}
public class CustomField
{
   public int CustomFieldId {get;set;}
   public string FieldName {get;set;}
   public string FieldValue {get;set;}
   [ForeignKey("Category")]
   public int CategoryId {get;set;}
   public Category Category {get;set;}
}