如何设置一个属性,以便在使用savechanges时保存多对一关系,并且不使:insert语句与foreign key约束冲突…错误。
很简单,我有一个广告和一个广告类型,其中有许多广告对一个广告类型。AD上有一个属性:
public class Ad
{
public Int32 AdTypeId { get; set; }
public virtual AdType AdType { get; set; }
}
以涵盖这一关系。
当我这样做的时候:
someAd.AdType = someAdType;
属性设置得很好,但adtypeid不是。不过,不用担心,因为我认为这样可以省钱。
context.SaveChanges();
此时出现问题,它试图将0值保存在adtypeid列中(导致外键问题),而不是使用对象分配的adtype属性来确定应将其插入adtypeid列中的内容。
我知道的事情:
-
此时someadtype是
保留/具有ID。
-
ADTYPE属性设置正确。
-
ADtypeID为0。
-
数据库中存在外键关系。
-
ADtypeID是主键。
-
我已将延迟/延迟加载设置为“真”
自从adtype被设置为允许延迟加载以来,我还没有真正尝试过更改它。