Questions tagged «entity-framework-6»

对于有关ADO.NET实体框架版本6的问题。如果您的问题不限于EF6版本,也请添加通用的[entity-framework]标签。

30
实体框架提供程序类型无法加载?
我试图在当前安装在计算机上的TeamCity上运行测试。 System.InvalidOperationException: 实体框架提供程序类型“ 为” 'ADO.NET提供程序无法加载。确保提供程序程序集可用于正在运行的应用程序。System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServerVersion=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'System.Data.SqlClient 有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkId=260882。 System.Data.Entity正如在Codeplex上建议的那样,在我的任何项目中都没有提及升级到EF6的内容。 因此,我不确定为什么会出现此异常。从VS运行测试时,我没有得到任何此类异常。 我确实尝试将CopyLocal设置为false,然后再次设置为true ..但这似乎也不起作用。 更新资料 我的app.config具有以下内容。这会导致某些我不理解的行为吗? <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> </configSections> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> </entityFramework> </configuration> 我在teamcity中获得以下stacktrace。 [MSTest] …

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; …

13
如何在Visual Studio Server资源管理器中连接到LocalDB?
经过一个小时的搜索,我不敢相信我无法找到可行的解决方案。我关注的是有关Entity Framework 6.0的本文,该文章提供了有关Code First的简单演练。我创建了该项目,并安装了最新的EF Nuget软件包以供该项目进行编译。我还验证了我已经安装了Visual Studio 2013附带的Microsoft SQL Server 2012 Express LocalDB。我的本地计算机上没有安装任何其他SQL实例。程序运行,并将条目添加到数据库中并在控制台中输出。但是,当文章说“检查您的localdb”时,并没有说如何!我没有在项目文件夹下创建任何“ .mdf”或“ .ldf”文件。我尝试了各种方法来连接Visual Studio' s Server Explorer到LocalDB。向导找不到(localdb)或在服务器资源管理器中找不到任何提供程序来接受连接字符串,就像(localdb)\v11.0;Integrated Security=true;我在StackOverflow中问过这几个地方一样,但是没有答案可用或标记为答案。请帮忙,这不必令人沮丧! 将Visual Studio Server资源管理器连接到LocalDB的步骤是什么?


11
人们应该如何使用Entity Framework 6进行单元测试?
我一般只是从单元测试和TDD开始。我以前涉猎过,但是现在我决心将其添加到我的工作流程中并编写更好的软件。 昨天我问了一个类似的问题,但这似乎是一个问题。我已经坐下来开始实现服务类,该类将用于从控制器中抽象出业务逻辑,并使用EF6映射到特定的模型和数据交互。 问题是我已经封锁了自己,因为我不想在存储库中抽象出EF(对于特定的查询,它仍然可以在服务之外使用),并且想测试我的服务(将使用EF Context) 。 我想这里是问题,这样做有什么意义吗?如果是这样的话,鉴于IQueryable造成的抽象漏洞以及Ladislav Mrnka关于单元测试的许多出色文章,人们会如何在野外进行操作,因为在处理内存中时Linq提供程序的不同实施到特定的数据库。 我要测试的代码看起来很简单。(这只是伪代码,试图了解我在做什么,我想使用TDD驱动创建) 语境 public interface IContext { IDbSet<Product> Products { get; set; } IDbSet<Category> Categories { get; set; } int SaveChanges(); } public class DataContext : DbContext, IContext { public IDbSet<Product> Products { get; set; } public IDbSet<Category> Categories { get; set; } public …


4
首先使用EF代码映射复合键
SQL Server表: SomeId PK varchar(50) not null OtherId PK int not null 我应该如何首先在EF 6代码中映射它? public class MyTable { [Key] public string SomeId { get; set; } [Key] public int OtherId { get; set; } } 我看过一些示例,您必须为每个列设置顺序,这是必需的吗? 在某处有官方文件吗?

25
数据库中已经有一个命名的对象
从程序包管理器控制台更新数据库失败。我使用了Entity Framework 6.x和代码优先方法。错误是 “数据库中已经有一个名为“ AboutUs”的对象。” 我怎么解决这个问题? internal sealed class Configuration : DbMigrationsConfiguration<Jahan.Blog.Web.Mvc.Models.JahanBlogDbContext> { public Configuration() { AutomaticMigrationsEnabled = true; AutomaticMigrationDataLossAllowed = false; } protected override void Seed(Jahan.Blog.Web.Mvc.Models.JahanBlogDbContext context) { } } 我的DbContext是: public class JahanBlogDbContext : IdentityDbContext<User, Role, int, UserLogin, UserRole, UserClaim> { public JahanBlogDbContext() : base("name=JahanBlogDbConnectionString") { Database.SetInitializer(new DropCreateDatabaseIfModelChanges<JahanBlogDbContext>()); …


3
实体框架6中的多异步?
这是我的代码: var banner = context.Banners.ToListAsync() var newsGroup = context.NewsGroups.ToListAsync() await Task.WhenAll(banner, newsGroup); 但是当我从控制器调用函数时。显示错误 在先前的异步操作完成之前,第二操作在此上下文上开始。使用“ await”来确保在此上下文上调用另一个方法之前,所有异步操作都已完成。不保证任何实例成员都是线程安全的。 请帮我解决这个问题。

1
Database.BeginTransaction与Transactions.TransactionScope
System.Transactions.TransactionScope和EF6和有什么不一样Database.BeginTransaction? 有人可以举一个很小的例子,或者只是解释一个明显的区别时使用哪个? PS:在我的项目中,我正在使用EF6。我已经阅读了文档,但并没有太大帮助。还查看了示例,但它们正在使用SqlConnection.BeginTransaction,现在MSDatabase.BeginTransaction在EF6中引入了此新功能。

2
异步PartialView导致“ HttpServerUtility.Execute被阻止…”异常
我有一个局部视图试图IEnumerable<Post>使用异步从数据库中检索一个... 方法 public static class PostService { public static int PostsPerPage = 50; public static async Task<IEnumerable<Post>> GetRecentAsync(int page = 0) { return await entityFrameworkDbContext.Posts .ToListAsync(); } } 局部视图 public async Task<ActionResult> Recent(int page = 0) { return PartialView(await PostService.GetRecentAsync(page)); } 然后,如果我尝试称呼它 @Html.Action("Recent", "Post") 我得到以下异常 HttpServerUtility.Execute在等待异步操作完成时被阻止。 说明:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中起源的更多信息。 异常详细信息:System.InvalidOperationException:HttpServerUtility.Execute在等待异步操作完成时被阻止。 为什么会出现此错误?不行吗

3
实体框架6事务回滚
使用EF6,您可以使用新交易,例如: using (var context = new PostEntityContainer()) { using (var dbcxtransaction = context.Database.BeginTransaction()) { try { PostInformation NewPost = new PostInformation() { PostId = 101, Content = "This is my first Post related to Entity Model", Title = "Transaction in EF 6 beta" }; context.Post_Details.Add(NewPost); context.SaveChanges(); PostAdditionalInformation PostInformation = new …

8
延迟加载与急切加载
实体框架中的延迟加载是加载和访问相关实体时发生的默认现象。但是,急切加载是指对所有这些关系强制加载的做法。我遇到了一个问题:在什么情况下,优先加载比延迟加载更有利。提出这个问题,因为很明显,延迟加载对资源更友好,即使我们使用该ToList()方法,我们仍然可以利用延迟加载行为。但是,我认为延迟加载可能会增加对实际数据库的请求数量,这也许就是为什么有时开发人员使用Inlcude强制加载所有关系的方法。例如,当在MVC 5中使用Visual Studio自动脚手架时,在控制器中自动创建的Index方法始终使用“急切加载”,而我一直有一个问题,为什么Microsoft在这种情况下默认使用“急切加载”。 如果有人向我解释在什么情况下,优先加载比延迟加载更有利,以及在有比延迟加载更友好的资源的情况下我们为什么要使用它,我将不胜感激。


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.