繁体   English   中英

为什么实体框架System.Data.Entity.Core.Objects.RelationshipEntry错误? (用于变更跟踪)

[英]Why is the Entity Framework System.Data.Entity.Core.Objects.RelationshipEntry Wrong? ( For Change Tracking)

所有:

我们公司正在研究使用实体框架的ASP.NET应用程序。 采取了实体框架模型优先方法来创建数据库表和POCO。此外,我们使用用于实体框架和NUnit框架的工作量测试工具来进行单元测试。

目前,我们正在尝试对客户和帐户业务实体ASP.NET应用程序进行某些CRUD操作。

每个客户最多可以选择拥有一个帐户。 这是两个表之间的关系在数据库图中的样子: 在此处输入图片说明

我们的应用程序还跟踪对实体以及实体之间关系的更改跟踪。

我们有以下代码示例,其中包含填充的“客户”和“帐户”业务条目:

        Customer custFour = new Customer { CustomerID = "4    ", Orders = new HashSet<Order>(), CustomerDemographics = new HashSet<CustomerDemographic>(), CompanyName = "FC Barcelona", ContactName = "Lionel Messi", ContactTitle = "current top basket ball player", Address = "344 testing street", City = "Buenos Aires", Region = "Oklahoma", PostalCode = "4498", Country = "Argentina", Phone = "2344949494", Fax = "33325" };

        Account acctFour = new Account { UserName = "lmessi", Password = "myteamlostworldcupmatch", Customer = custFour, AccountRoleMaps = new HashSet<AccountRoleMap>() };

为了简短起见,我们还调用了类似于以下代码的一行,以便实体框架DbContext可以保存上述的Customer和Account实体以及Customer和Account实体之间的关系:

_context.Set<Account>().Add(acctFour);

_context.SaveChanges();

随着执行的进行,我们最终达到以下代码摘录:

            List<System.Data.Entity.Core.Objects.ObjectStateEntry> allAddModDelItems = ((IObjectContextAdapter)_context).ObjectContext.ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Deleted).ToList();

            foreach (var osEnt in allAddModDelItems)
            {

            }

上面的代码摘录检索所有已添加,修改和删除的对象以及对象之间的关系。

我已经为客户检查了System.Data.Entity.Core.Objects.EntityEntry和为帐户检查了System.Data.Entity.Core.Objects.EntityEntry,它们具有有效的业务数据。 在此处输入图片说明

不幸的是,System.Data.Entity.Core.Objects.RelationshipEntry的Entity为null,而EntityKey为null,这似乎是错误的,因为System.Data.Entity.Core.Objects.RelationshipEntry应该反映客户和客户之间的关系。我创建的对象。 在此处输入图片说明 为什么System.Data.Entity.Core.Objects.RelationshipEntry错误? 换句话说,为什么System.Data.Entity.Core.Objects.RelationshipEntry的Entity和EntityKey属性为空?

http://msdn.microsoft.com/zh-cn/library/system.data.objects.objectstateentry.entity%28v=vs.100%29.aspx

当ObjectStateEntry与RelationshipSet条目而不是实体类型实例相关联时,Entity属性返回null。

因此,将Entity和EntityKey属性设置为null是有意义的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM