我在这个linq表达式中有这个错误:
var naleznosci = (from nalTmp in db.Naleznosci
where nalTmp.idDziecko == idDziec
select new Payments
(
nalTmp.Dziecko.Imie,
nalTmp.Dziecko.Nazwisko,
nalTmp.Miesiace.Nazwa,
nalTmp.Kwota,
nalTmp.RodzajeOplat.NazwaRodzajuOplaty,
nalTmp.RodzajeOplat.TypyOplat.NazwaTypuOplaty,
nalTmp.DataRozliczenia,
nalTmp.TerminPlatnosci
)).ToList();
你知道怎么解决这个问题吗?我试着用任何表达的组合...:/
发布于 2010-08-26 13:04:01
如果没有更多关于“Payments”的信息,这不会有太大帮助,但假设你想创建一个Payments对象,并根据列值设置它的一些属性:
var naleznosci = (from nalTmp in db.Naleznosci
where nalTmp.idDziecko == idDziec
select new Payments
{
Imie = nalTmp.Dziecko.Imie,
Nazwisko = nalTmp.Dziecko.Nazwisko,
Nazwa= nalTmp.Miesiace.Nazwa,
Kwota = nalTmp.Kwota,
NazwaRodzajuOplaty = nalTmp.RodzajeOplat.NazwaRodzajuOplaty,
NazwaTypuOplaty = nalTmp.RodzajeOplat.TypyOplat.NazwaTypuOplaty,
DataRozliczenia = nalTmp.DataRozliczenia,
TerminPlatnosci = nalTmp.TerminPlatnosci,
}).ToList();
发布于 2012-12-14 16:31:10
如果您仍然希望使用构造函数进行初始化,而不是使用属性(有时这种行为是为了初始化目的而需要的),则需要在某些时候使用LINQ to Collections,因为LINQ to SQL不知道如何将构造函数转换为SQL查询。您可以使用AsEnumerable()
来实现这一点。
因此,您的代码应该如下所示:
var naleznosci =
db.Naleznosci
.Where(nalTmp => nalTmp.idDziecko == idDziec)
.Select(nalTmp => new
{
DzieckoImie = nalTmp.Dziecko.Imie,
DzieckoNazwisko = nalTmp.Dziecko.Nazwisko,
MiesiaceNazwa = nalTmp.Miesiace.Nazwa
Kwota = nalTmp.Kwota,
NazwaRodzajuOplaty = nalTmp.RodzajeOplat.NazwaRodzajuOplaty,
NazwaTypuOplaty = nalTmp.RodzajeOplat.TypyOplat.NazwaTypuOplaty,
DataRozliczenia = nalTmp.DataRozliczenia,
TerminPlatnosci = nalTmp.TerminPlatnosci
}) // Select necessary columns from DB into anonymous type.
.AsEnumerable() // Here comes transfer to LINQ to Collections.
.Select(nalImp => new Payments
(
nalTmp.DzieckoImie,
nalTmp.DzieckoNazwisko,
nalTmp.MiesiaceNazwa,
nalTmp.Kwota,
nalTmp.NazwaRodzajuOplaty,
nalTmp.NazwaTypuOplaty,
nalTmp.DataRozliczenia,
nalTmp.TerminPlatnosci
)) // Use constructor to create your models.
.ToList();
发布于 2011-08-24 00:32:00
我自己刚刚遇到了这个错误,我想我应该补充说,如果Payment
类型是struct
,那么您也会遇到相同的错误,因为struct
类型不支持无参数构造函数。
在这种情况下,将Payment
转换为类并使用对象初始值设定项语法将解决此问题。
https://stackoverflow.com/questions/3571084
复制相似问题