我不确定如何最好地为代码优先实体框架做这项工作。我想确保对列表的任何更改都会修改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;作为标记用于该字段的共享级别的属性。这就是遗留代码。
我们有机会进行网站重构。他们现在希望能够为每个属性选择多个受众。规范化的解决方案会很糟糕。
所以我考虑到了一种古怪的解决方案,但我不确定如何最好地为代码优先实体框架做这项工作。我想确保对列表的任何更改都会修改csv属性。我还想确保任何linq2sql查询仍然可以使用这种方法有效地工作(-ish)。
public List<int> EmailAudienceTypes {
get {
return EmailVisibleToRolesCsv.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
.Select(s => int.Parse(s))
.ToList();
} }