假设两个Class
public class classA
{
public string prop1 { get; set; }
public classB prop2 { get; set; }
}
public class classB
{
public string innerProp1 { get; set; }
public string innerProp2 { get; set; }
}
如上, classA 内有 classB 的结构
而数据库就是 prop1 和 prop2 两个文字字段而已
我得手动将 prop2 拆解成 classB 的结构
没有什么复杂的逻辑,就只是第一个字存在 innerProp1 ,之后的字存在 innerProp2
原本想写成如下的样子
from q in table1
select new classA
{
prop1 = q.column1,
prop2 = new classB
{
innerProp1 = q.column2.substring(0, 1),
innerProp2 = q.column2.substring(1)
}
}
不过就收到错误讯息:
LINQ to Entities 中仅支援无参数建构函式和初始设定式
这表示无法在查询时直接产生这样的结构吗?
还是说有什么方法可以达成一次就产生这结构呢?
我在将旧有数据库写成.NET Web API
为了要让column2这字段也能使用OData去查询
就必须得先把它拆开
(不过老实说我也不知道拆开后能不能查这种结构...)
其实内部class内是含有文字与数字的,会需要比文字也需要比数字大小
只是为了将问题单纯化先省略这部分
另外这个字段其实有好几个,全都要做一样的处理
如果不能产生或不能查的话
说不定就只能写成这种样子
public class classA
{
public string prop1 { get; set; }
public string innerProp1 { get; set; }
public string innerProp2 { get; set; }
}
问题是这字段好几个,里面要拆成的字段也好几个
若非不得已实在不想这样做orz
先感谢各位的帮助