我正面临实体框架中的映射问题。最初我的模型就像
public class Model1
{
public string[] Fields
{ get; set; }
}
这样保存在db中的数据就像[" data1"," data2"]。现在根据新要求我的模型改变如下
public class Model1
{
public Model2[] Fields
{
get;
set;
}
}
public class Model2
{
public string prop1 {get;set;}
public string prop2 {get;set;}
}
对于新的实施,新的保存工作正常。但是对于现有记录在获取数据时获取类型转换问题。
无法将字符串数组转换为model2数组。
我该如何解决这个问题?
答案 0 :(得分:0)
好的。您需要为Model1保留相同的实体,但只需添加getter:
public class Model1
{
public string[] Fields { get; set; }
public string prop1 { get { return Field[0]; } }
public string prop2 { get { return Field[1]; } }
}
然后,您可以创建一个仅用于迁移目的的方法,在该方法中,您可以获取所有Model1数据,将它们转换为Model2并保存它们。它看起来像:
using (var context = new YourContext())
{
foreach( var model1 in context.SetModel1 )
{
context.SetModel2.Add(
new Model2() { prop1 = model1.prop1, prop2 = model1.prop2 }
);
}
context.SaveChanges();
}