CodeGo.net>实体框架以不确定性的方式删除有效内容未经许可?
作者:互联网
我在使用EF将数据存储到数据库时遇到麻烦.通常,所有CRUD操作对于程序的其余部分都可以正常工作,但是最近我注意到,在m:n关系的情况下,棘手的部分来了.
我将EF4.1与代码优先方法结合使用.我的课程有趣的部分如下所示:
public class Publication : IItem, IDataErrorInfo {
...
[InverseProperty("Publications")]
public virtual ICollection<Group> Groups{ get; set; }
}
public class Group : IItem, IDataErrorInfo {
...
[InverseProperty("Groups")]
public virtual ICollection<Publication> Groups{ get; set; }
}
数据库创建如下:
public PublicationsDB() : base("PublicationDB") {
this.Configuration.AutoDetectChangesEnabled = true;
}
public DbSet<Publication> Publications { get; set; }
public DbSet<Software> Softwares { get; set; }
public DbSet<Group> Group{ get; set; }
目的是在出版物和组之间创建m:n关系.
最近,当我从XML导入数据时,一切正常.在调用SaveChanges()之后,两个发布和组都将存储其ICollection.在相同的方法中,下面几行内容是我从数据库中获取数据(仅用于检查),并且两个实体都填充了其ICollection.
麻烦来了:
当执行不同的数据处理功能时,我从数据库中挖掘数据并:
>出版物的收集情况良好,所有实体均具有适当的ICollection< Group>.从xml填充
>但是,网上论坛的集合相当混乱.它们中的大多数具有ICollection< Publication>.设置为null.
可能是什么问题?这种行为对我来说真的很奇怪.最后但并非最不重要的一点是从DBSet< Groups>中删除Collections.不是确定性的.我的意思是,如果我们考虑组A和组B,那么在程序A.ICollection = null和B.ICollection.Count = 1的运行中(这是错误的),而在另一轮运行中则不同,即A.ICollection = null和B.ICollection = null(这也是错误的)
有任何想法吗?
构建代码时首先陷入混乱的模型数据库?框架错误或怪异的内部框架优化?还是我只是个屁眼?
标签:ef-code-first,entity-framework-4-1,c,entity-framework 来源: https://codeday.me/bug/20191201/2079885.html