gpt4 book ai didi

entity-framework - "...parameterless constructors and initializers are supported..."错误是什么意思?

转载 作者:行者123 更新时间:2023-12-04 12:00:55 26 4
gpt4 key购买 nike

我收到此错误:

Only parameterless constructors and initializers are supported in LINQ to Entities.

尝试运行此代码时(找到此代码 here 并使用测试数据库进行操作):
XElement xml = new XElement("contacts",
from c in db.Contacts
orderby c.ContactId
select new XElement("contact",
new XAttribute("contactId", c.ContactId),
new XElement("firstName", c.FirstName),
new XElement("lastName", c.LastName))
);

其中 db 是自动创建的实体对象。关于如何让它发挥作用的任何想法?

最佳答案

我相信它反对您使用 XElement 构造函数的事实,该构造函数在“select”子句中接受参数。由于 XElement 没有无参数构造函数,您可能需要更改代码以选择匿名类型,并在事后初始化 XElement 集合。

var els = from c in db.Contacts
orderby c.ContactID
select new { c.ContactID, c.FirstName, c.LastName };

var xml = new XElement("contacts",
els.ToList()
.Select(e => new XElement("contact",
new XAttribute("contactID", e.ContactID),
new XElement("firstName", e.FirstName),
new XElement("lastName", e.LastName))));

这是未经测试的,但希望给你这个想法。我首先执行 EF 查询,然后对其调用 ToList(),以便我可以使用 Linq to Objects 而不是 EF 来选择 XElement 集合。

关于entity-framework - "...parameterless constructors and initializers are supported..."错误是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3464035/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com