2

私は razorengine を使用していくつかのコードを生成していますが、それは簡単だと思いますが、以前は正常に機能していた例外が発生しています。

private FileItem Parse(string template, Model dataitem)
{
    _content = Razor.Parse(template, dataitem );
    // return current instance for method chaining ...
    return this;
}

dataitemefエンティティを含む単なるオブジェクトです:

{System.Data.Entity.DynamicProxies.Table_600FE9F0407FBF4EABE3C512A1938F3D58ACD5ABD32691FF564D071856338EBB}

テンプレートに意味のない文字列が含まれています:"(Some text)"

しかし、私はこの例外を受けています:

テンプレートをコンパイルできません。型または名前空間名 'DynamicProxies' が名前空間 'System.Data.Entity' に存在しません (アセンブリ参照がありませんか?)。

ナゲットでefをインストールしたので、すべての参照がそこにあると思います。私はef5とef6の両方で同じ結果を試しました。私はこれをやろうとしています:

string template = "Hello @Model.Name! Welcome to Razor!";
string result = Razor.Parse(template, new { Name = "World" });
4

1 に答える 1

2

簡単な答えは、遅延読み込みをオフにすることです。これにより、ef が問題の原因となるプロキシ オブジェクトにテーブル データをラップすることがなくなります。ただし、多数のナビゲーション プロパティがある場合は、それらも自動的に読み込まれなくなります。

プロキシオブジェクトも削除し、データとしてかみそりに渡すlinqステートメントの後に ToList() を使用してクエリを強制的に実行する2番目の答え。

于 2014-02-22T22:24:27.787 に答える