gpt4 book ai didi

c# - RazorEngine 和 EF 5 或 6

转载 作者:太空宇宙 更新时间:2023-11-03 10:54:16 25 4
gpt4 key购买 nike

我正在使用 razorengine 生成一些代码,我认为这很简单,但我遇到了一个异常,它以前工作得很好。

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

dataitem 只是一个包含 ef 实体的对象:

{System.Data.Entity.DynamicProxies.Table_600FE9F0407FBF4EABE3C512A1938F3D58ACD5ABD32691FF564D071856338EBB}

模板包含无意义的字符串:"(Some text)"

但是我遇到了这个异常:

Unable to compile template. The type or namespace name 'DynamicProxies' does not exist in the namespace 'System.Data.Entity' (are you missing an assembly reference?).

我已经用 nuget 安装了 ef,所以我假设所有引用都在那里。我用 ef5 和 ef6 都试过相同的结果。我正在尝试这样做:

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

最佳答案

简单的答案是关闭延迟加载。它将阻止 ef 将表数据包装在导致问题的代理对象中。但是,如果您有很多导航属性,它们也会自动停止加载。

第二个答案是在您的 linq 语句之后使用 ToList() 强制执行查询,该语句也删除了代理对象,然后将其作为数据传递到 razor。

关于c# - RazorEngine 和 EF 5 或 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20080608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com