假設兩個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
先感謝各位的幫助