我正在尝试将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);
}
答案 0 :(得分:2)
不幸的是,您必须将外键设置为允许空值。否则你将无法达到你想要达到的目标。要做到这一点,只需使ID字段可以为空,如:
public int? ContactsExtraId { get; set; }
public virtual tblContactsExtra tblContactsExtra { get; set; }
public int? InventoryId { get; set; }
public virtual TblInventory TBLINVENTORY { get; set; }