关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭去年。社区在7个月前审查了是否重新打开此问题,然后将其关闭:原始关闭原因未解决Improvethisquestion使用EntityFramework实现更新行(如果存在),否则插入新行逻辑的最有效方法是什么?或者有什么模式吗?
我刚刚开始使用单元测试和TDD。我以前涉足过,但现在我决定将它添加到我的工作流程中并编写更好的软件。昨天我问了一个问题,其中包括这个,但这似乎是一个单独的问题。我已经坐下来开始实现一个服务类,我将使用它从Controller中抽象出业务逻辑,并使用EF6映射到特定模型和数据交互。问题是我已经把自己挡住了,因为我不想在存储库中抽象EF(它仍然可以在服务之外用于特定查询等)并且想测试我的服务(将使用EF上下文).我想这里有一个问题,这样做有什么意义吗?如果是这样,鉴于IQueryable引起的抽象泄漏和LadislavMrnka的许多精彩帖子,人们是如何在野外做这件事的。关于单元测试的主题
我在EntityFramework中有一个名为employ的SQLServer表,其中有一个名为ID的键列。如何使用EntityFramework从表中删除单条记录? 最佳答案 不必先查询对象,您可以通过其id将其附加到上下文。像这样:varemployer=newEmploy{Id=1};ctx.Employ.Attach(employer);ctx.Employ.Remove(employer);ctx.SaveChanges();或者,您可以将附加条目的状态设置为已删除:varemployer=newEmploy{Id=1};
在以下博客中:http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx博客包含以下代码示例:publicclassDinner{publicintDinnerID{get;set;}publicstringTitle{get;set;}publicDateTimeEventDate{get;set;}publicstringAddress{get;set;}publicstringHostedBy{get;set;}publicvirtual
我的理解是[NotMapped]属性直到EF5才可用,目前在CTP中,因此我们不能在生产中使用它。如何将EF4.1中的属性标记为忽略?更新:我注意到其他一些奇怪的事情。我得到了[NotMapped]属性,但出于某种原因,EF4.1仍然在数据库中创建一个名为Disposed的列,即使publicboolDisposed{get;私有(private)集;}标记为[NotMapped]。该类当然实现了IDisposeable,但我看不出这有什么关系。有什么想法吗? 最佳答案 您可以使用NotMapped属性数据注释来指示Code-Fir
在使用需要超过30秒才能完成的函数导入时,我在使用EntityFramework(EF)时遇到超时。我尝试了以下方法,但未能解决此问题:我将DefaultCommandTimeout=300000添加到项目的App.Config文件中的连接字符串中,该项目具有建议的EDMX文件here.这是我的连接字符串的样子:我尝试像这样直接在我的存储库中设置CommandTimeout:privateTrekEntitiescontext=newTrekEntities();publicIEnumerableGetKirksFriends(){this.context.CommandTimeout
Include()方法非常适用于对象列表。但是,如果我需要深入两层怎么办?例如,下面的方法将返回具有此处显示的包含属性的ApplicationServers。但是,ApplicationsWithOverrideGroup是另一个包含其他复杂对象的容器。我也可以对该属性执行Include()吗?或者我怎样才能让该属性完全加载?就目前而言,这个方法:publicIEnumerableGetAll(){returnthis.Database.ApplicationServers.Include(x=>x.ApplicationsWithOverrideGroup).Include(x=>x
我想将我的编辑保存到数据库,并且我在ASP.NETMVC3/C#中使用EntityFrameWorkCode-First,但出现错误。在我的事件类中,我有DateTime和TimeSpan数据类型,但在我的数据库中,我分别有日期和时间。这可能是原因吗?在将更改保存到数据库之前,如何在代码中转换为适当的数据类型。publicclassEvent{publicintEventId{get;set;}publicintCategoryId{get;set;}publicintPlaceId{get;set;}publicstringTitle{get;set;}publicdecimalPr
我正在尝试在我的机器上当前安装的TeamCity上运行我的测试。System.InvalidOperationException:TheEntityFrameworkprovidertype'System.Data.Entity.SqlServer.SqlProviderServices,EntityFramework.SqlServer,Version=6.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089'forthe'System.Data.SqlClient'ADO.NETprovidercouldnotbeloaded.
我对ASP.NET中的EntityFramework有疑问。每当我将对象添加到数据库时,我都想获取Id值。我该怎么做?根据EntityFramework解决方案是:using(varcontext=newEntityContext()){varcustomer=newCustomer(){Name="John"};context.Customers.Add(customer);context.SaveChanges();intid=customer.CustomerID;}这不会获取数据库表标识,但会获取实体的分配ID,如果我们从表中删除一条记录,种子标识将与实体ID不匹配。