0

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

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

4

1 回答 1

0

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

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

    [NotMapped]
    public Shelf Shelf { get; set; }
}
于 2013-04-01T14:52:39.080 回答