如何将列表属性添加到Entity Framework Code First模型

时间:2017-12-07 00:33:55

标签: c# sql-server entity-framework-6

我不确定如何最好地为代码优先实体框架做这项工作。我想确保对列表的任何更改都会修改csv属性。我还想确保任何linq2sql查询仍然可以使用这种方法有效地工作(-ish)。

目标:

public class Profile {
    public string Email {get;set;}

    // This has to save to the DB somehow.
    public IEnumerable<int> EmailAudienceTypes { get; set; } 
}

上下文 好吧,忽略你可能会抱怨的明显的规范化问题。在我们公司,我们有一个AudienceType表,作为一种枚举。您从列表中选择一种类型,并使用类型的ID存储所选类型。可以使用AudienceTypeID控制从电子邮件地址到用户活动的所有内容。在过去,我们会有&#34; EmailAudienceTypeId&#34;作为标记用于该字段的共享级别的属性。这就是遗留代码。

enter image description here

我们有机会进行网站重构。他们现在希望能够为每个属性选择多个受众。规范化的解决方案会很糟糕。

enter image description here

所以我考虑到了一种古怪的解决方案,但我不确定如何最好地为代码优先实体框架做这项工作。我想确保对列表的任何更改都会修改csv属性。我还想确保任何linq2sql查询仍然可以使用这种方法有效地工作(-ish)。

public List<int> EmailAudienceTypes {
            get {
                return EmailVisibleToRolesCsv.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
                  .Select(s => int.Parse(s))
                  .ToList();
            } }

enter image description here

0 个答案:

没有答案