草庐IT

Entity-Framework

全部标签

c# - DELETE 语句与 Entity Framework 的 SAME TABLE REFERENCE 约束冲突

我有一个带有自引用的表,其中ParentId是ID(PK)的FK。使用EF(代码优先),我建立了如下关系:this.HasOptional(t=>t.ParentValue).WithMany(t=>t.ChildValues).HasForeignKey(t=>t.ParentId);当我尝试删除子项及其父项时,EF向数据库发出的DELETE命令与我预期的顺序不符-它首先尝试删除父项记录。我意识到我在这里有几个选择(我都不喜欢):先删除子记录,进行完整保存/提交,然后删除父记录。考虑到我的模型及其维护逻辑的复杂性,这不是一个选项-我无法在需要时发出多个提交命令。在删除任何内容之前解除

c# - DropCreateDatabaseIfModelChanges EF6 导致 System.InvalidOperationException : The model backing the context has changed

迁移到EntityFramework6后,我在构建服务器上执行单元测试时遇到错误。我正在使用DropCreateDatabaseIfModelChanges初始化程序。当我将其更改为MigrateDatabaseToLatestVersion时一切正常,但我想坚持使用之前的初始化程序。我得到的错误是:System.InvalidOperationException:System.InvalidOperationException:Themodelbackingthe'AppContext'contexthaschangedsincethedatabasewascreated.Consi

c# - 如何使用 EF 6 Fluent Api 添加复合唯一键?

我有一个表(Id,name,itemst,otherproperties),Id是主键,我想要一个唯一的组合键(name,itemst)。我如何通过流畅的API(首选)或注释首先使用代码添加它? 最佳答案 假设您有一个名为的实体publicclassMyTable{publicintId{get;set;}publicStringName{get;set;}}您可以使用以下方法创建组合键publicclassYourContext:DbContext{publicDbSetMyTables{get;set;}protectedove

c# - LINQ Order By Descending with Null Values on Bottom

这个问题在这里已经有了答案:LINQorderbynullcolumnwhereorderisascendingandnullsshouldbelast(10个答案)关闭8年前。我有这样的表达:troubletickets=db.ServiceTickets.Include(t=>t.Company).Include(t=>t.UserProfile);troubletickets.OrderByDescending(t=>t.UserProfile!=null?t.UserProfile.FirstName:"ZZZ");我必须检查UserProfile是否为null,因为如果不这样

c# - Code First Entity Framework - 更改连接字符串

如何更改代码优先EntityFramework/MVC应用程序中的连接字符串?我正在尝试将它转移到实时站点,但它忽略了Web配置值并且仍然引用我的本地版本的数据库。这是我的web.config的连接字符串部分:我不确定Entities字符串是否有任何相关性,因为我使用了CodeFirstEntityFramework,而且我认为它只在我尝试创建edmx文件时出现(尽管我最终只是删除了它)。Entities连接字符串已被注释掉,所以我认为它没有被使用。我想让EntityFramework读取“WebsiteConnectionString”,但它似乎想使用本地连接字符串,但我什至看不到设

c# - 如何从数据库刷新 ObjectContext 缓存?

我们正在从数据库加载数据:varsomethings=Context.SomethingSet.ToList();然后有人在上下文之外删除或添加行。Out上下文仍然缓存已删除的对象,因为它不知道它们已被删除。即使我调用Context.SomethingSet.ToList(),我们的上下文仍然包含已删除的对象并且导航属性不正确。从数据库刷新整个集合的最佳方法是什么? 最佳答案 Refresh方法是你要找的:Context.Refresh(RefreshMode.StoreWins,somethings);

c# - 是否可以在 Entity Framework 中捕获0..1到0..1的关系?

有没有一种方法可以为EntityFramework中的可为空的外键关系创建可为空的反向导航属性?用数据库的话来说,是0..1到0..1关系。我尝试了如下操作,但是我不断收到错误消息:Unabletodeterminetheprincipalendofanassociationbetweenthetypes'Type1'and'Type2'.TheprincipalendofthisassociationmustbeexplicitlyconfiguredusingeithertherelationshipfluentAPIordataannotations.publicclassTyp

c# - 使用 Entity Framework 自动编号

我想遍历一组对象并将它们全部添加到一个表中。目标表有一个自增字段。如果我添加单个对象,则没有问题。如果我添加两个主键都为零的对象,EntityFramework将失败。我可以手动指定主键,但尝试EF的全部目的是让生活更轻松而不是更复杂。这是代码,随后收到异常。foreach(Contactcontactincontacts){Instructorinstructor=InstructorFromContact(contact);context.AddToInstructors(instructor);}try{context.SaveChanges();}catch(Exception

c# - Entity Framework + 存储库 + 工作单元

我正在考虑使用EF4开始一个新项目并浏览了一些文章,我发现了一些关于EF的文章以及存储库模式和工作单元(http://tdryan.blogspot.com/2011/03/another-entity-framework-4-repository_15.html和http://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-with-entity-framework-4-0.aspx)我使用的是第一个(第1部分、第2部分和第3部分)。它们非常相似。我是这种情况下

c# - 无法使用 migrate.exe 运行代码优先迁移

我正在尝试更新测试系统上的数据库。当我运行update-database在visualstudio中,事情按预期工作。当我部署然后尝试在测试机器上运行时:Migrate.exeCodeFirst.dll/startupConfigurationFile="..\web.config"我得到:noconnectionstringnamedxxxcouldbefoundintheapplicationconfigfile...即使在web.config中有一个具有该名称的连接字符串。只有一个.config文件,没有我正在运行的dll的配置文件我试图手动声明我的连接字符串:Migrate.e