使用Entity Framework动态创建字段

时间:2013-03-25 18:22:14

标签: asp.net-mvc database asp.net-mvc-4 content-management-system entity-framework-5

我正在开发CMS,我有一个类别类:

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

我正在使用Entity Framework来存储&在我的数据库中创建这样的数据库表现在,我如何向此模型添加动态字段,从而添加到数据库。我允许用户添加他想要添加的所需自定义字段。 所以,我的数据库架构变为

  

类别(CategoryId,CategoryName,CategoryType,CustomField1,CustomField2);

如何使用EF 5进行此操作?

1 个答案:

答案 0 :(得分:3)

你不能以你期望的方式。您需要Category表格,而不是将自定义字段添加到CategoryExtension表格,您需要存储CategoryIdFieldNameFieldValue(与此相关的键值对)特定类别记录)其中CategoryId将是FK到Category表,例如CategoryIdFieldName将构建复合PK。您的课程将如下所示:

public partial class Category
{
   public int CategoryId {get;set;}
   public string CategoryName {get;set;}
   public string CategoryType {get;set;}
   public virtual ICollection<CategoryExtension> Extensions { get; set; }
}

public class CategoryExtension 
{
   public int CategoryId { get; set; }
   public string Name { get; set; }
   public string Value { get; set; }
}