C# 如何描述实体框架能够正确序列化/反序列化的自定义数据类型?
有一种类型的模型:C# 如何描述实体框架能够正确序列化/反序列化的自定义数据类型?,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,有一种类型的模型: public class Pub { [Key] public int Id { get; set; } public string Name { get; set; } public StringList Items { get; set; } // <-- } 如何解释EF,当从数据库填充模型时,您需要在model.Items.value中设置值,当从模型读取到数据库以从model.Items.value中检索值时?您无法让Entity F
public class Pub
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public StringList Items { get; set; } // <--
}
如何解释EF,当从数据库填充模型时,您需要在model.Items.value中设置值,当从模型读取到数据库以从model.Items.value中检索值时?您无法让Entity Framework执行任何操作。它不是为了操作数据而设计的,只是为了检索数据。但是,您可以通过迂回的方式解决此问题。知道实体框架将只填充数据库数据中的属性,您可以执行以下操作:
public string ItemsString { get; set; }
[NotMapped]
public string Items
{
get { return FillFromString(ItemsString); }
set { ItemsString = value.ToString(); }
}
换句话说,ItemsString
是持久化的内容,然后您的Items
属性会动态地将其转换为您需要的任何结构。您只需在应用程序中根据需要使用项
,它就会设置并忘记它
public string ItemsString { get; set; }
[NotMapped]
public string Items
{
get { return FillFromString(ItemsString); }
set { ItemsString = value.ToString(); }
}