使用Entity Framework中的其他字段建模多对多关系

时间:2013-02-27 03:59:48

标签: c# entity-framework code-first

我一直在寻找,但到目前为止还没有找到解决方案。

我有3个概念表:

Case
-------------
CaseId
ExternalCaseId


ExtraField
-------------
ExtraFieldId
Name
Type
RegExValidationString


ExtraFieldRef
--------------
Id
CaseId
ExtraFieldId
Value

有了这个,我可以动态创建表单的字段并保存给定的值。我遇到的麻烦是如何使用代码优先模型与EF创建这种关系。

非常感谢任何帮助或指示。

2 个答案:

答案 0 :(得分:1)

未经测试,但这样的事情应该作为模型的起点:

public class Case
{
   public int CaseId {get;set;}
   public virtual Case ExternalCase {get;set;}
}

public class ExtraField
{
   public int ExtraFieldId {get;set;}
   public String Name {get;set;}
   public String Type {get;set;}
   public String RegexValidationString {get;set;}
   public virtual IEnumerable<ExtraFieldRef> ExtraFieldRefs {get;set;}
}

public class ExtraFieldRef
{
   public int Id {get;set;}
   public virtual Case Case {get; set;}
   public virtual ExtraField {get;set;}
   public int Value {get;set;}
}

答案 1 :(得分:1)

贾斯汀,

我强烈建议您搜索已解决类似情况的其他帖子。对我的简单搜索产生了这个问题,以回答您的问题:Create Code First Many to Many With Additional Fields

为了让您的帖子不会被关闭或标记下来(在哪里丢失分数),请自己帮忙并阅读FAQ并遵守“The Dude”。如果您完成常见问题解答中的每个部分,您甚至可以获得徽章!

干杯