我有我的核心项目在C#中。 我在一个数据库上工作,其中一些表格有“user_mod”和“date_mod”这两个字段,用于标记谁和什么时候做了一些mod,和“data_new”和“user_new”是一样的。 我的问题:是否有办法集中这一点,并使这个数据自动插入,我创builddbContext的实例? 如果没有,我将使用审计跟踪工具。 我已经看到了其中一些,但是有一个问题:所有这些都需要我的模型中的一些代码。 但是我不想写我的模型,因为如果我必须改变它,我会丢失mods。 是否可以使用EF6的审计跟踪而不写入模型文件? 怎么样? 编辑: 我尝试重写saveChanges。 public partial class PieEntities : DbContext { public override int SaveChanges(System.Data.Objects.SaveOptions options) { var timestamp = DateTime.Now; EntityState es = EntityState.Added; ObjectStateManager o = new ObjectStateManager(); foreach (ObjectStateEntry entry in o.GetObjectStateEntries(EntityState.Added )) { if (entry.Entity.GetType() == typeof(TabImpianti)) { TabImpianti impianto = entry.Entity as TabImpianti; impianto.DATA_INS […]
当我们启动多个asynchronousentity framework查询并同时运行它们时会发生什么? 他们是在物理上并行执行吗? 他们是由entity framework序列化? 这是不受支持的? 这是否会导致exception? public async Task QueryDatabase() { using (var context = new MyDbContext()) { Task task1 = context.SomeTable1.ToListAsync(); Task task2 = context.SomeTable2.ToListAsync(); await Task.WhenAll(task1, task2); } }
我将EF 5.0安装到.DAL中,现在我想要将EF 5.0安装到Nuget的.BLL中 但是默认的在线Nuget包总是出现在6.0中,这与在DAL中使用的5.0 EF一起使用时会出现错误。 我可以在哪里安装5.0版本的EntityFramework到我的Nuget包?
我在VS 2013 Professional中创build了一个MVC 5应用程序,然后使用EF 6.1代码和SQL Server Express上的现有数据库。 当我尝试创build视图时,我正在使用“新的脚手架项目…”,然后使用entity frameworkselect“具有视图的MVC 5控制器”。我select模型和上下文类,然后单击确定。 然后出现以下错误消息,并且不创build代码。 我用相同的错误卸载了EF Power Tools。 错误 运行选定的代码生成器时发生错误:“exception已被调用的目标引发”。 我也尝试卸载/重新安装VS 2013和SQL Server没有任何更改。 任何其他想法可能会导致此错误?
我最近升级/更新了旧的项目中的entity framework从版本4或5到版本6.现在我得到这个exception: 在EntityFramework.dll中发生types“System.InvalidOperationException”的exception,但未在用户代码中处理 附加信息:找不到具有不变名称“System.Data.SqlClient”的ADO.NET提供程序的entity framework提供程序。 确保提供程序在应用程序configuration文件的“entityFramework”部分中注册。 有关更多信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882 。 我GOOGLE了错误,并遇到了几个SO线程,但没有包含一个解决scheme,为我工作。 这就是我的App.config的样子: <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <!– For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 –> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers> </entityFramework> </configuration> 我已经从我的项目中卸载了entity framework,并重新安装它,删除所有对旧EF文件的引用,并重新安装,但没有为我工作。 我不断收到这个错误。
我刚刚下载了entity framework6,并创build了一个全新的项目来testing它。 我们目前使用EF 5。 添加完所有的表和存储过程后,我试图build立项目,但我得到的错误: types“System.Data.Objects.ObjectParameter”的值不能转换为“System.Data.Entity.Core.Objects.ObjectParameter”。 types“System.Data.Entity.Core.Objects.ObjectResult(Of DataLibrary.MyStoredProc_Result)”的值不能被转换为“System.Data.Objects.ObjectResult(Of DataLibrary.MyStoredProc_Result)”。 我无法弄清楚为什么这不会开箱即用 EF 5有这样的问题。 我正在使用VS 2012.Net 4.5 Vb.net(也尝试与C#项目…同样的问题) 有任何想法吗? 编辑 : 答案是安装VS 2012的EF6工具。我不知道我必须这样做,因为我认为是在我添加了entity framework包安装。
我的应用程序是在EF 4中使用数据库第一个EDMX。我想升级一切到EF 6.在获得与NuGet的EF 6之后,我不得不对我的EF模型,我的类进行了很多更改,因为名称空间然后我意识到,由我的EDMX生成的代码也使用错误的名称空间等等。到目前为止,我没有使用自定义的T4。 我如何将现有的EDMX升级到EF 6。 谢谢。
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; } } 我已经看到一些例子,你必须设置每个列的顺序,是必需的? 这个地方有官方文档吗?
我正在使用entity framework6。 我有一个名为Tests的testing信息表。 我从这个表中删除行首先得到一个testing列表,做一个删除每个然后一个提交。 var testList = _testService.GetTests(1, userId).ToList(); testList.ForEach(_obj => _uow.Tests.Delete(_obj)); _uow.Commit(); 我有另一个问题的信息称为问题表。 我想这样做,但在这个表中有超过1000行。 如果我把它们全部列出来,然后做1000个删除,这将不是非常有效。 这个问题的删除不经常发生。 有没有人有一个build议,我怎么能做到这一点。 我应该做1000次删除。 使用EF做这种事情是正常的吗?
我有一个局部视图,试图从数据库检索一个IEnumerable<Post>使用asynchronous… 方法 public static class PostService { public static int PostsPerPage = 50; public static async Task<IEnumerable<Post>> GetRecentAsync(int page = 0) { return await entityFrameworkDbContext.Posts .ToListAsync(); } } PartialView public async Task<ActionResult> Recent(int page = 0) { return PartialView(await PostService.GetRecentAsync(page)); } 然后,如果我试图打电话给它 @Html.Action("Recent", "Post") 我得到以下exception HttpServerUtility.Execute在等待asynchronous操作完成时被阻塞。 说明:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪,了解有关错误的更多信息以及源代码的位置。 exception详细信息:System.InvalidOperationException:HttpServerUtility.Execute在等待asynchronous操作完成时被阻塞。 为什么我得到这个错误? 它不应该工作吗?