Questions tagged «entity-framework»

有关ADO.NET实体框架的问题,请参阅.NET Framework的对象关系映射(ORM)工具。如果适用,请添加特定于版本的标签。请勿对实体框架核心问题使用此标签。请改用entity-framework-core。

16
引入FOREIGN KEY约束可能会导致循环或多个级联路径-为什么?
我已经为此努力了一段时间,无法完全了解发生了什么。我有一个包含Sides(通常为2)的Card实体-Cards和Sides都有一个Stage。我正在使用EF Codefirst迁移,并且迁移因以下错误而失败: 在表“ Sides”上引入FOREIGN KEY约束“ FK_dbo.Sides_dbo.Cards_CardId”可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。 这是我的银行卡实体: public class Card { public Card() { Sides = new Collection<Side>(); Stage = Stage.ONE; } [Key] [Required] public virtual int CardId { get; set; } [Required] public virtual Stage Stage { get; set; } [Required] [ForeignKey("CardId")] …

17
实体框架:已经有与此命令关联的打开的DataReader
我正在使用Entity Framework,有时我会收到此错误。 EntityCommandExecutionException {"There is already an open DataReader associated with this Command which must be closed first."} at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands... 即使我没有进行任何手动连接管理。 此错误间歇地发生。 触发错误的代码(为便于阅读而缩短): if (critera.FromDate > x) { t= _tEntitites.T.Where(predicate).ToList(); } else { t= new List<T>(_tEntitites.TA.Where(historicPredicate).ToList()); } 使用Dispose模式以便每次都打开新连接。 using (_tEntitites = new TEntities(GetEntityConnection())) { if (critera.FromDate > x) { t= …

19
实体框架。删除表中的所有行
如何使用Entity Framework快速删除表中的所有行? 我目前正在使用: var rows = from o in dataDb.Table select o; foreach (var row in rows) { dataDb.Table.Remove(row); } dataDb.SaveChanges(); 但是,执行需要很长时间。 还有其他选择吗?
280 c#  sql  linq  entity-framework 

10
结合使用MySQL和Entity Framework
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 10个月前关闭。 改善这个问题 在Google上找不到与Entity Framework / MySQL相关的任何内容,因此我希望有人对此有所了解。

3
关联的主要终点在实体框架中以1:1关系表示什么
public class Foo { public string FooId{get;set;} public Boo Boo{get;set;} } public class Boo { public string BooId{get;set;} public Foo Foo{get;set;} } 当我收到错误消息时,我正在尝试在Entity Framework中执行此操作: 无法确定类型'ConsoleApplication5.Boo'和'ConsoleApplication5.Foo'之间的关联的主要终点。必须使用关系流利的API或数据注释显式配置此关联的主要端。 我已经在StackOverflow上看到了有关此错误的解决方案的问题,但我想了解术语“主要目的”的含义。

4
实体框架和连接池
我最近开始在.NET 4.0应用程序中使用Entity Framework 4.0,并对与池相关的一些事情感到好奇。 据我所知,连接池是由ADO.NET数据提供程序管理的,在我的情况下是由MS SQL服务器管理的。实例化新实体上下文(ObjectContext)(即无参数)时,这是否适用new MyDatabaseModelEntities()? a)为应用程序创建全局实体上下文(即一个静态实例)或b)使用using块为每个给定的操作/方法创建和公开实体上下文的优缺点是什么? 我应该了解某些特定情况下的其他建议,最佳实践或通用方法吗?

6
实体框架代码优先-来自同一表的两个外键
我刚开始使用EF代码,因此我是该主题的总入门者。 我想在团队和比赛之间建立关系: 1场比赛= 2支球队(主队,客队)和结果。 我认为创建这样的模型很容易,所以我开始编码: public class Team { [Key] public int TeamId { get; set;} public string Name { get; set; } public virtual ICollection<Match> Matches { get; set; } } public class Match { [Key] public int MatchId { get; set; } [ForeignKey("HomeTeam"), Column(Order = 0)] public int …

21
如何在Entity Framework 6(代码优先)中调用存储过程?
我是Entity Framework 6的新手,我想在我的项目中实现存储过程。我有一个存储过程,如下所示: ALTER PROCEDURE [dbo].[insert_department] @Name [varchar](100) AS BEGIN INSERT [dbo].[Departments]([Name]) VALUES (@Name) DECLARE @DeptId int SELECT @DeptId = [DeptId] FROM [dbo].[Departments] WHERE @@ROWCOUNT > 0 AND [DeptId] = SCOPE_IDENTITY() SELECT t0.[DeptId] FROM [dbo].[Departments] AS t0 WHERE @@ROWCOUNT > 0 AND t0.[DeptId] = @DeptId END Department 类: public class …

28
在应用程序配置文件中找不到名为“ MyEntities”的连接字符串
我正在使用实体框架和ASP.NET MVC 4来构建应用程序 我的解决方案分为两个项目; 一个包含我的数据模型(.edmx)文件和一些自定义接口的类库 引用上面的类库的“容器” MVC项目 我的问题是,当我尝试使用“MyEntites” 的DbContext我得到了以下错误: 在应用程序配置文件中找不到名为“ MyEntities”的连接字符串。 我认为问题与连接字符串位于类库的app.config而非MVC项目中有关。 有没有人有什么建议?

17
如何使用Entity Framework 6更新记录?
我正在尝试使用EF6更新记录。首先找到记录(如果存在),对其进行更新。这是我的代码:- var book = new Model.Book { BookNumber = _book.BookNumber, BookName = _book.BookName, BookTitle = _book.BookTitle, }; using (var db = new MyContextDB()) { var result = db.Books.SingleOrDefault(b => b.BookNumber == bookNumber); if (result != null) { try { db.Books.Attach(book); db.Entry(book).State = EntityState.Modified; db.SaveChanges(); } catch (Exception ex) { throw; …

9
实体框架中多个列的唯一键约束
Entity Stack的堆栈溢出:Уникальныйиндекспонесколькимствобцав实体框架 我正在使用Entity Framework 5.0 Code First; public class Entity { [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] public string EntityId { get; set;} public int FirstColumn { get; set;} public int SecondColumn { get; set;} } 我要让之间的组合FirstColumn和SecondColumn独特。 例: Id FirstColumn SecondColumn 1 1 1 = OK 2 2 1 = OK 3 3 3 …

5
非静态方法需要目标
我有一个控制器操作,该操作在Firefox本地和生产环境中以及本地IE上均能正常运行,但在生产环境中却无法正常运行。这是我的控制器动作: public ActionResult MNPurchase() { CalculationViewModel calculationViewModel = (CalculationViewModel)TempData["calculationViewModel"]; decimal OP = landTitleUnitOfWork.Sales.Find() .Where(x => x.Min >= calculationViewModel.SalesPrice) .FirstOrDefault() .OP; decimal MP = landTitleUnitOfWork.Sales.Find() .Where(x => x.Min >= calculationViewModel.MortgageAmount) .FirstOrDefault() .MP; calculationViewModel.LoanAmount = (OP + 100) - MP; calculationViewModel.LendersTitleInsurance = (calculationViewModel.LoanAmount + 850); return View(calculationViewModel); } 这是我在IE中得到的堆栈跟踪: 错误。处理您的请求时发生错误。System.Reflection.TargetException:非静态方法需要一个目标。在System.Reflection.RuntimeMethodInfo.CheckConsistency(Object target)在System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj,BindingFlags …


6
.AsNoTracking()有什么区别?
我对.AsNoTracking()扩展名有疑问,因为这都是很新的,也很令人困惑。 我正在为网站使用每个请求的上下文。 我的许多实体都不会更改,因此不需要跟踪,但是在以下情况下,我不确定数据库的内容,甚至不确定在这种情况下是否有所作为。 这个例子是我目前正在做的: context.Set<User>().AsNoTracking() // Step 1) Get user context.Set<User>() // Step 2) Update user 与上面相同,但是.AsNoTracking()从步骤1中删除了: context.Set<User>(); // Step 1) Get user context.Set<User>() // Step 2) Update user 步骤1和2使用相同的上下文,但是发生在不同的时间。我无法解决的是是否有任何区别。由于第2步是更新,因此我猜两者都将两次访问数据库。 谁能告诉我有什么区别?

14
如何将参数传递给DbContext.Database.ExecuteSqlCommand方法?
假设我确实有必要在实体框架中直接执行sql命令。我在弄清楚如何在我的sql语句中使用参数时遇到了麻烦。以下示例(不是我的实际示例)不起作用。 var firstName = "John"; var id = 12; var sql = @"Update [User] SET FirstName = @FirstName WHERE Id = @Id"; ctx.Database.ExecuteSqlCommand(sql, firstName, id); ExecuteSqlCommand方法不允许您像在ADO.Net中一样传递命名参数,并且该方法的文档没有提供有关如何执行参数化查询的任何示例。 如何正确指定参数?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.