C# 实体框架:以json格式存储实体属性

C# 实体框架:以json格式存储实体属性,c#,entity-framework,.net-4.5,entity-framework-5,C#,Entity Framework,.net 4.5,Entity Framework 5,假设您有一个实体,它的属性类型为ICollection,我想在SQL Server中以JSON格式将其存储为varchar 如何做到这一点 提前感谢您。您的模型类中可能应该有另一个string属性来保存string集合的JSON表示。并且该属性将映射到您的表。不要将集合属性映射到表。像这样的 public class Customer { public int ID { set;get;} public string JsonData { set;get;} [NotMapped]

假设您有一个实体,它的属性类型为
ICollection
,我想在SQL Server中以JSON格式将其存储为
varchar

如何做到这一点


提前感谢您。

您的模型类中可能应该有另一个string属性来保存string集合的JSON表示。并且该属性将映射到您的表。不要将集合属性映射到表。像这样的

public class Customer
{
  public int ID { set;get;}
  public string JsonData { set;get;}
  [NotMapped]
  public ICollection<string> Items { set;get;}
}

顺便问一下,您确定要在表中存储
JSON
表示吗?为什么不使用主-细节方法呢。将JSON数据存储到规范化的表中。无论何时,只要你想重新构建JSON,你都可以在C#中完成。

是的,这可能是一个解决办法,但我想知道是否有一些官方的方法。类似于添加或更新时的拦截器,因此您可以转换和自定义某些实体属性持久性。关于您的“更新”。这是另一个解决办法。在NHibernate中,我能够实现自定义类型,这样您就可以使用常规属性并定义如何将它们存储在数据库中。我在找这样的东西。
JavaScriptSerializer ser= new JavaScriptSerializer();    
string JsonData= ser.Serialize(Items);