我有以下实体:
public class Profile
{
[Required]
public string Name { get; set; }
[Required]
public string Description { get; set; }
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public IList<Functionality> Functionalities { get; set; }
} 和
public class Functionality
{
[Required]
public string Name { get; set; }
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
} 在我的服务方法中,当我尝试以下操作时,它会从数据库中移除配置文件功能列表中没有的功能对象:
(...)
var databaseFunctionalities = this
.Repository
.GetByIds<Functionality>(profile
.Functionalities
.ToIdList());
profile.Functionalities.Clear();
profile.Functionalities.AddRange(databaseFunctionalities);
((BaseRepository)this.Repository)
.UpdateGraph(profile,map => map.OwnedCollection(p => p.Functionalities));
this.Repository.SaveChanges();
(...) 对此有什么想法吗?
谢谢!
发布于 2014-10-09 12:31:10
阅读完后找到了一个解决方案,并在本文中解释了关联和拥有之间的差异:
https://github.com/refactorthis/GraphDiff/issues/43
所以我改变了
((BaseRepository)this.Repository)
.UpdateGraph(profile,map => map.OwnedCollection(p => p.Functionalities));
this.Repository.SaveChanges(); 至
((BaseRepository)this.Repository)
.UpdateGraph(profile,map => map.AssociatedCollection(p => p.Functionalities));
this.Repository.SaveChanges(); 就像一种魅力!
https://stackoverflow.com/questions/26267198
复制相似问题