如何为IEnumerable <dynamic> </dynamic>赋值

时间:2013-03-07 18:12:59

标签: c# razor webmatrix

我有以下代码:

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";

如果我尝试将“Some string”分配给标题的Text属性,我会收到以下错误:

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

如何将header对象转换为List / Array,以便我可以为其分配新值?

1 个答案:

答案 0 :(得分:3)

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

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

相关问题