2

我有以下代码:

var db = Database.Open("Text");
var headers = db.Query("SELECT * FROM Headers");

//headers is now an IEnumerable<dynamic>

string s = headers[0].Text; // Works correctly

headers[0].Text = "Some string";

如果我尝试将“某些字符串”分配给标题的 Text 属性,则会收到以下错误:

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: WebMatrix.Data.DynamicRecord contains no definition for Text.

如何将标头对象转换为列表/数组,以便能够为其分配新值?

4

1 回答 1

3

问题是DynamicRecord从 WebMatrix 返回的类实际上是“只读的”。DynamicObject 不允许设置Text.

如果要更改值,则需要将此数据映射到您自己的类中,而不是将它们保留在原始dynamic类型中。

于 2013-03-07T18:15:52.913 回答