【问题标题】:The type '<>f__AnonymousType1`2[System.String,System.Data.Linq.Binary]' must declare a default (parameterless) constructor类型 '<>f__AnonymousType1`2[System.String,System.Data.Linq.Binary]' 必须声明一个默认(无参数)构造函数
【发布时间】:2017-06-13 23:26:03
【问题描述】:

我遇到了异常

System.InvalidOperationException:类型“f__AnonymousType1`2[System.String,System.Data.Linq.Binary]”必须声明默认(无参数)构造函数才能在映射期间构造。

当我尝试运行时

await cmd.ExecuteReaderAsync();

一个非常简单的命令,它从包含 rowversion (timestamp, not null) 列的表中返回行。知道为什么吗?很奇怪。

编辑:

当我运行时它实际上失败了

return this.Translate<T>(reader);

紧接着。

【问题讨论】:

  • 你能显示你正在创建的匿名类型的代码吗?
  • @itsme86 查看编辑
  • @itsme86 当然,这就像来自Context.ProductChangeTrackings select new { pct.SKU, pct.RowVersion };中的 pct
  • 如果您的目标是 .NET 4.0 或更高版本,请使用元组...

标签: c# sql .net linq linq-to-sql


【解决方案1】:

您收到此错误是因为您试图将您的阅读器翻译成没有默认构造函数的类型。这意味着您已经在覆盖默认无参数构造函数的类型中定义了自己的构造函数。

在你试图翻译阅读器对象的类型中简单地定义无参数构造函数,你就完成了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多