如何防止在Entity Framework 4.1中保存关系?

时间:2013-04-01 14:17:12

标签: entity-framework

我们正在使用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)

我们不想仅在这种情况下保存图像或关系 感谢

1 个答案:

答案 0 :(得分:0)

标记与[NotMapped]属性的关系:

public class Product {
    public int ProductId { get; set; }
    public string Name { get; set; }
    // ...

    [NotMapped]
    public Shelf Shelf { get; set; }
}