嗨我想从DB中选择4列然后选择列表
public struct keyData
{
public int pid;
public int sid;
public string proid;
public string title;
}
Run Code Online (Sandbox Code Playgroud)
Entities dbconn = new Entities();
List<keyData> temRes = (
from viewData in dbconn.vw1
join hData in dbconn.tableH
on new { pid= (int)viewData.pid, proid= viewData.proid}
equals new { pid= (int)hData .pid, proid= hData .proid}
into joinSet
from joinUnit in joinSet.DefaultIfEmpty()
where joinUnit == null
select new { pid= (int)viewData.pid, sid= (int)viewData.sid, proid= viewData.proid, Title=viewData.Title }
).ToList();
Run Code Online (Sandbox Code Playgroud)
然后它说:
错误3无法隐式转换
type 'System.Collections.Generic.List<AnonymousType#1>'
Run Code Online (Sandbox Code Playgroud)
至 'System.Collections.Generic.List<hl.Program.keyData>'
谢谢
使用MarcinJuraszek的想法
它给了我:
Only parameterless constructors and initializers are supported in LINQ to Entities
Run Code Online (Sandbox Code Playgroud)
那是因为你的quere返回一个匿名类型的对象.将其更改为返回keyData实例:
List<keyData> temRes = (
from viewData in dbconn.vw1
join hData in dbconn.tableH
on new { pid= (int)viewData.pid, proid= viewData.proid}
equals new { pid= (int)hData .pid, proid= hData .proid}
into joinSet
from joinUnit in joinSet.DefaultIfEmpty()
where joinUnit == null
select new keyData() { pid= (int)viewData.pid, sid= (int)viewData.sid, proid= viewData.proid, Title=viewData.Title }
).ToList();
Run Code Online (Sandbox Code Playgroud)
不同之处在于select条款.我在new关键字后添加了您的类名.
| 归档时间: |
|
| 查看次数: |
14067 次 |
| 最近记录: |