c# - Json 序列化没有关系的 EF 对象

标签 c# asp.net-mvc entity-framework json.net

我正在尝试将 Json 序列化的 EF 对象存储在另一个数据库中。

我试图存储的项目之一是购物车,其中有一些相关的表格。

如何存储购物车,而不拖动其关系(最好不诉诸 .Select() 来手动选择不同的列)

[AllowAnonymous]
public ActionResult Test() {

    using (var db = new DALEntities())
    {
        var q = db.tblCarts.SingleOrDefault(x => x.CartItemID == 4275);

        q.tblContactsExtra = null;
        q.TBLINVENTORY = null;

        var settings = new JsonSerializerSettings {PreserveReferencesHandling = PreserveReferencesHandling .Objects} ;

        var str = JsonConvert.SerializeObject(q, settings);

        return Content(str);
    }

最佳答案

不幸的是,您必须将外键设置为允许空值。否则你将无法实现你想要实现的目标。为此,只需将 ID 字段设为可为空,例如:

public int? ContactsExtraId { get; set; }
public virtual tblContactsExtra tblContactsExtra { get; set; }

public int? InventoryId { get; set; }
public virtual TblInventory TBLINVENTORY { get; set; }

关于c# - Json 序列化没有关系的 EF 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16194220/

相关文章:

c# - ExecuteStoreQuery 未返回输出参数

c# - 无法确定复合主键oracle db错误消息如何解决?

mysql - 带有 Entity Framework 的适配器 (C#)

c# - USB 连接 "The semaphore timeout period has expired"错误

c# - 最小起订量无效方法

c# - MongoDB 不查询

c# - 从 Core 控制台应用程序连接到 Core MVC 应用程序数据上下文

c# - 无法使用 jsonconverter 更新现有的 json 列表

c# - 结合抽象工厂模式的异步和非异步实现

jquery - 更新 jQuery 版本破坏了 ajax 加载