首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Graphdiff正在删除实体

Graphdiff正在删除实体
EN

Stack Overflow用户
提问于 2014-10-08 22:01:22
回答 1查看 767关注 0票数 1

我有以下实体:

代码语言:javascript
复制
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; }
}  

代码语言:javascript
复制
public class Functionality
{
    [Required]
    public string Name { get; set; }

    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }
}  

在我的服务方法中,当我尝试以下操作时,它会从数据库中移除配置文件功能列表中没有的功能对象:

代码语言:javascript
复制
(...)
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();  
(...)  

对此有什么想法吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-09 12:31:10

阅读完后找到了一个解决方案,并在本文中解释了关联和拥有之间的差异:

https://github.com/refactorthis/GraphDiff/issues/43

所以我改变了

代码语言:javascript
复制
((BaseRepository)this.Repository)
    .UpdateGraph(profile,map => map.OwnedCollection(p => p.Functionalities));
this.Repository.SaveChanges();  

代码语言:javascript
复制
((BaseRepository)this.Repository)
    .UpdateGraph(profile,map => map.AssociatedCollection(p => p.Functionalities));
this.Repository.SaveChanges();  

就像一种魅力!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26267198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档