加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

entity-framework – “……无参数构造函数和初始化函数被支持…

发布时间:2020-12-16 07:45:28 所属栏目:百科 来源:网络整理
导读:我收到这个错误: Only parameterless constructors and initializers are supported in LINQ to Entities. 当试图运行此代码时(找到此代码here并使测试数据库可以使用): XElement xml = new XElement("contacts",from c in db.Contacts orderby c.ContactI
我收到这个错误:
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),e.FirstName),e.LastName))));

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读