此代码工作正常。
using (ContextDB db = new ContextDB())
{
var custAcct = (from c in db.CustAccts
select new
{
c.AcctNo,
c.Company,
c.UserName
}).ToList();
但是这个没有
public class CustAcct
{
public int AcctNo { get; set; }
public string Company { get; set; }
public string UserName { get; set; }
}
....
....
....
using (ContextDB db = new ContextDB())
{
CustAcct custAcct = (from c in db.CustAccts
select new
{
c.AcctNo,
c.Company,
c.UserName
}).ToList();
它返回此错误:
无法隐式转换类型' System.Collections.Generic.IEnumerable'到' EMailReader.Models.CustAcct'。存在显式转换(您是否错过了演员?)
我使用Google,发现了很多相关主题,但仍然无法使用可用的解决方案将其投入使用
我只需要将数据返回到强类型模型。
编辑:
经过更多研究后我发现这个解决方案,但我想知道为什么我不能直接从LinqToSql列表中检索。
List<CustAcct> temp = new List<CustAcct>();
IEnumerable<dynamic> items = custAcct;
foreach (var item in items)
{
temp.Add(new CustAcct()
{
AcctNo = item.AcctNo,
Company = item.Company,
UserName = item.UserName,
});
}
答案 0 :(得分:0)
您正在通过创建新类来定义这些属性。这将覆盖LINQ2SQL生成的类。
只需将“public class CustAcct”更改为“public partial class CustAcct”。
这将解决您的问题,您无需再次定义这些属性。从班上删除那些。这些将自动为您创建。
如果您可以发布课程,我会为您更改。
//希亚姆