Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何描述实体框架能够正确序列化/反序列化的自定义数据类型?_C#_Asp.net Mvc_Entity Framework - Fatal编程技术网

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(); }
}