我们正在使用EF 4.1
我们有一个不应保存的虚拟对象(.CanBeSaved = false)
我可以使用此代码阻止保存对象
IEnumerable<ObjectStateEntry> changes = this.ObjectStateManager.GetObjectStateEntries(EntityState.Modified | EntityState.Added | EntityState.Deleted);
foreach (ObjectStateEntry stateEntryEntity in changes)
if (!((MyPersistentEntityClass)stateEntryEntity.Entity).CanBeSaved)
stateEntryEntity.ChangeState(EntityState.Unchanged);
但现在它失败了,因为EF仍在尝试在添加的对象上保存新关系。
如何告诉EF不保存新关系?
**更多信息**
有时候我们要保存相关对象,有时我们不想保存相关对象
假设我们有一个存储图像的产品对象,我们希望保存这两个对象。但是如果产品在NullImage类型的图像中(我们的自定义对象,具有默认属性)我们不想保存NullImage对象(其中.CanBeSaved为false)
我们不想仅在这种情况下保存图像或关系 感谢
答案 0 :(得分:0)
标记与[NotMapped]
属性的关系:
public class Product {
public int ProductId { get; set; }
public string Name { get; set; }
// ...
[NotMapped]
public Shelf Shelf { get; set; }
}