我正在尝试在另一个数据库中存储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; }