【发布时间】:2018-02-22 15:10:44
【问题描述】:
我刚开始学习实体框架,我面临与生成模型序列化相关的问题。我有一对多关系的表格,它们是国家和国家,因为一个国家有许多国家。我使用的是 DB first 方法,当我使用实体框架创建实体时,Country 类具有 ICollection 的一个属性。我阅读并发现这是导航属性。让我先显示生成的类,如下所示:
//这是生成的类。
public class Country
{
public Country()
{
States = new HashSet<States>();
}
public int Id { get; set; }
public string ContryCode { get; set; }
public string ContryName { get; set; }
public virtual ICollection<States> States{ get; set; }
}
我生成了模型,然后我向前迈进了一步。然后,当我通过 ajax 请求获取 Country 列表时,我遇到了序列化问题。我用谷歌搜索了一些术语,例如延迟加载、急切加载和 n+1 问题。我详细阅读了它。我找到了一个关闭延迟加载的解决方案。现在的问题是我如何通过延迟加载来序列化我的模型?
我创建了 MetaData 类并使用了一些属性,如 ignoreXml 等,但没有任何帮助。顺便说一句,我使用的是 Asp.Net MVC 5,我想用延迟加载序列化我的模型。谁能解释一下?
【问题讨论】:
-
我可以理解在一些批处理或胖客户端应用程序中为什么需要延迟加载。但是对于一个更适合延迟加载的 Web 应用程序,您有什么用例(除了不想考虑 .Include 之外)?
-
@KyleBurns 我没有任何用例。但我想知道我们是否在任何情况下都使用延迟加载。那么我们如何序列化模型呢?
-
您是否收到“上下文处理”错误?
-
那么我遇到了问题 什么问题?很可能是循环引用,因为
States还包含对Country的引用,在这种情况下,延迟加载与它无关 -
我的问题是“我们可以用延迟加载序列化”我们的模型吗?
标签: c# asp.net-mvc entity-framework serialization