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プロパティに「Somestring」を割り当てようとすると、次のエラーが発生します。

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

ヘッダーオブジェクトをリスト/配列に変換して、新しい値を割り当てることができるようにするにはどうすればよいですか?

4

1 に答える 1

3

問題は、DynamicRecordWebMatrix から返されるクラスが事実上「読み取り専用」であることです。DynamicObject は の設定を許可しませんText

値を変更したい場合は、このデータを独自のクラスにマップする必要があり、元のdynamic型には残らないでください。

于 2013-03-07T18:15:52.913 に答える