0

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

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

我正在使用实体框架在我的数据库中存储和创建这样的数据库表。现在,如何将动态字段添加到此模型并因此添加到数据库中。我允许用户添加他想要添加的自定义字段。所以,我的数据库模式变成了

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

如何使用 EF 5 做到这一点?

4

1 回答 1

3

你不能以你期望的方式。您不需要将自定义字段添加到Category表中,而是需要诸如CategoryExtension要存储的表之类的东西CategoryIdFieldName以及FieldValue(与特定类别记录相关的键值对)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; }
}
于 2013-03-25T19:42:57.197 回答