草庐IT

Multilingual_entity

全部标签

c# 在多线程服务器中使用 Entity Framework

在多线程服务器中使用EntityFramework的最佳实践是什么?我正在使用EntityFrameworkObjectContext来管理我所有的数据库操作,现在我知道这个上下文不是线程安全的,所以现在当我需要使用它来执行一些数据库操作时,我用lock声明是安全的。我应该这样做吗?? 最佳答案 在多线程环境中对EntityFramework的一些快速建议:不要使用带有锁的唯一上下文(无单例模式)提供statelessservices(您需要实例化并处理每个请求一个上下文)尽可能缩短上下文生命周期实现concurrency-cont

c# - 从 Entity Framework 5 升级到 6

在将我们的项目从使用EntityFramework5升级到EntityFramework6之后(通过NuGets更新功能),我在生成的Entities类中收到以下错误:Error1Thetypeornamespacename'Objects'doesnotexistinthenamespace'System.Data'(areyoumissinganassemblyreference?)我知道这是因为命名空间已更改,我可以通过更改我的导入来手动修复错误:使用System.Data.Objects;和使用System.Data.Objects.DataClasses;至:使用System

c# - EF 6 和 SQLite 1.0.96.0 的“未找到 Entity Framework 提供程序”

我意识到关于这个主题已经有几个类似的问题,但其中许多来自旧版本的SQLite,据我所知,它并不完全支持EF6。我已经尝试了来自这些线程的无数建议,但要么做错了什么,要么必须改变某些东西。我正在使用VS2013,目标为.NET4.5.1,并安装了来自system.data.sqlite.orgdownloadpage的sqlite-netFx451-setup-bundle-x86-2013-1.0.96.0.exe包。,以及来自NuGet管理器(安装EF6)的System.Data.SQLiteEF6包。下面是我当前的App.config文件(除了我尝试将Version、Culture

c# - Entity Framework 错误 : Cannot insert explicit value for identity column in table

我在EF上遇到这个错误。Cannotinsertexplicitvalueforidentitycolumnintable'GroupMembers_New'whenIDENTITY_INSERTissettoOFF.Db上的列是标识增量,在EF设计文件上,StoreGeneratedPattern也是标识。似乎每次我尝试保存时EF都试图插入0。一些建议说ID保留在表上或删除表并重新运行脚本。有什么想法吗?这是一些代码:GroupMembergroupMember=newGroupMember();groupMember.GroupId=group.Id;groupMember.Use

c# - 如何获取 Entity Framework 来更新复杂类型?

我正在使用EntityFramework(EF)从存储过程创建复杂类型。最近,存储过程发生了变化(添加了更多的返回值。我想更新映射到该存储过程的复杂类型。这可能吗?如果可以,怎么办?我目前每次删除我的函数导入和复杂类型存储过程更改,这很可能不是最佳方法。 最佳答案 我找到了另一种不删除复杂类型的方法。您可以更新您的复杂类型,VisualStudio将添加任何更改的列。方法如下:打开您的.edmx文件并转到模型浏览器。如果您的存储过程发生更改,请右键单击模型浏览器中的任何空白区域并选择从数据库更新模型,然后单击“完成”。这将刷新您的存

c# - 如何构建 LINQ to Entities 查询以直接加载子对象,而不是调用 Reference 属性或 Load()

我刚开始使用LINQtoEntities(或EntityFramework,不管他们怎么调用它),我正在编写很多这样的代码:varitem=(fromInventoryItemitemindb.Inventorywhereitem.ID==idselectitem).First();然后像这样在该对象上调用方法:vartype=item.ItemTypeReference;或varorders=item.OrderLineItems.Load();检索子对象或相关对象。我没有分析数据库或挖掘得太深,但我的猜测是,当我调用.Load()或*Reference属性时,我实际上是在对数据库进

c# - 模拟新的 Microsoft Entity Framework Identity UserManager 和 RoleManager

有没有人为UserManager和RoleManager想出一个成功的模拟解决方案?我整天都在用头撞墙。我想要做的就是模拟对象以使用内存集合而不是访问EntityFramework数据存储。我搜索了互联网并尝试了几种不同的使用最小起订量的方法。我的印象是新东西更容易测试。我错过了什么吗? 最佳答案 或者,您可以模拟IUserStoreUserManager的界面接受作为参数。varuserStore=newMock>();varuserManager=newUserManager(userStore.Object);正如@JoeBr

c# - 自引用多对多递归关系代码优先 Entity Framework

我似乎根本做不到这一点classMember{publicvirtualIListFriends{get;set;}[Key]publicintMemberId{get;set;}publicstringName{get;set;}}我尝试添加映射但没有成功。有没有办法用CTP5做到这一点? 最佳答案 按照惯例,CodeFirst将单向关联视为一对多。因此,您需要使用流畅的API让CodeFirst知道您想要多对多自引用关联:protectedoverridevoidOnModelCreating(ModelBuildermodel

c# - Entity Framework /Linq to SQL : Skip & Take

只是好奇Skip&Take应该如何工作。我得到了我想在客户端看到的结果,但是当我连接AnjLabSQLProfiler并查看正在执行的SQL时,它看起来好像正在查询并将整组行返回到客户。它真的会返回所有行,然后在客户端使用LINQ进行排序和缩小范围吗?我尝试过使用EntityFramework和LinqtoSQL来实现;两者似乎具有相同的行为。不确定它有什么不同,但我在VWD2010中使用C#。有什么见解吗?publicIEnumerableListStores(Funcsort,booldesc,intpage,intpageSize,outinttotalRecords){varc

c# - 如何查看 Entity Framework 的未决更改?

我正在使用ADO.NETEntityFramework创建应用程序。我可以在调试时逐行检查我的代码,并观察SQLServerProfiler执行的每个查询,但我无法弄清楚所有这些SQL命令的来源!有时当我执行SaveChanges()时,EntityFramework会执行意外的、奇怪的INSERTS。他们有时会破坏应用程序。我不知道我在做什么会导致它们。如何监控排队等待SaveChanges()调用的未决更改? 最佳答案 因为EntityFramework5.0DbContext有一个ChangeTrackerproperty其中