我的表Sections(SQLServer)有ID作为主键(int,identity)和SortIndexcolumn(int)用于排序目的。数据库有一个触发器,它在每个INSERT处设置SortIndex:=ID。显然我想稍后通过交换两行的值来更改排序索引。我使用EntityFramework访问数据,所有这些都使用MVC3网络应用程序。问题是,在我向表中插入一个新对象后,EntityFramework不会更新SortIndex的值。它还缓存了所有数据,因此以下从该表中获取所有对象的调用也将为该对象提供错误的SortIndex值。我尝试更改EDMX中此列的StoreGenerated
我有一个实体,我们称它为CommonEntity,它有一个在许多其他实体中用作外键的主键。随着应用程序的开发,这些链接将继续增长。我想要一种方法来查看CommonEntity是否可以安全删除(即它未被任何其他实体使用)。我知道我能做到if(!ce.EntityA.Any()&&!ce.EntityB.Any()...&&!ce.EntityN.Any()){//Delete}但我希望有一种方法可以自动检查所有关系,因为我不喜欢每次添加新关系时都必须返回并手动更改此代码的想法。也许EF4+中有一些我不知道的东西?我认为可以使用事务范围来尝试删除对象并在失败时将其回滚,但我不确定这种方法是
我正在尝试使用Oracle11gExpress和.NET4.0框架开发ASP.NETMVC4.0应用程序。我可以使用ODP.NET提供程序连接到数据库,还可以针对数据库生成我的EDMX。我不能做的是使用EntityFramework查询底层数据库。使用生成的connectionStringVisualStudio实例化我的DbContext时,出现以下错误:Unabletofindtherequested.NetFrameworkDataProvider.Itmaynotbeinstalled但是安装是因为我可以在GAC中看到该dll。它在machine.config中提到。我的项目引
我尝试通过DataGridViewDesigner设置DataSource,但它没有在此处列出,然后我通过生成DataSet的向导生成了新的数据源。但是现在我的项目中有EntityFramework+DataSet,我怎么能只使用EntityFramework...我很困惑。artiklBindingSource是自动生成的我只想使用EF作为数据源,现在我被不需要的DataSet困住了。 最佳答案 添加数据源以与您的DataGridView一起使用在DataGridViewTasks面板中,打开ChooseDataSource:组合
我正在使用EntityFramework开发应用程序并将数据存储在.mdf数据库中。我的代码可以读取数据,显然它也可以保存,但只是表面上。它没有错误,当程序运行时它就像数据已保存一样,例如我可以保存一个对象,处理上下文,创建一个新对象,然后当我搜索我的对象时它就在那里!但是当我查询数据库以查看存储的数据时,那里什么也没有。如果我关闭应用程序并再次运行它,所有数据都将消失。这是我为测试而编写的示例代码:using(DatabaseEntitiese=newDatabaseEntities()){for(inti=0;ius=e.User.Where(x=>x.ID();foreach(U
我需要更新表中的一个位字段,并针对该表中的特定ID列表将此字段设置为true。Id是从外部进程传入的。我想在纯SQL中,最有效的方法是创建一个临时表并用ID填充它,然后用它连接主表并相应地设置位字段。我可以创建一个SPROC来获取ID,但可能涉及200-300,000行需要设置此标志,因此这可能不是最有效的方法。使用IN语句对可以传递的数据量和性能有限制。如何使用EntityFramework实现上述目标我想可以创建一个SPROC来创建一个临时表,但从模型的角度来看,这是不存在的。有没有办法在运行时动态添加实体。[或者这种方法只会引起头痛]。虽然用300,000行填充一个临时表并进行连
我是EntityFramework的新手,我有一个关于过滤数据的问题。我有两个不同的日志实体,它们是:DiskLog和NetworkLog.这些实体都来自Log实体。这是我的C#应用程序中的一些代码:publicclassLog{...}publicclassDiskLog:Log{...}publicclassNetworkLog:Log{...}publicenumLogType{NotInitialized=0,Disk,Network}publicListGetWithFilter(GuiduserKey,intnSkip,intnTake,DateTimedateFrom=D
我即将开始一个Web应用程序,我想在其中使用具有(主要)代码优先模型的EntityFramework。但是,除了我计划创建的特定于应用程序的模型外,我还必须使用外部用户数据库。是否可以首先将我的模型之一指定为数据库并使用单独的数据库上下文? 最佳答案 从技术上讲,这是可能的,但我不推荐这样做。全面使用代码优先要好得多。是的,具有讽刺意味的是,您可以对现有数据库使用“代码优先”。只需创建与现有数据库中的表相匹配的POCO。如果您的POCO的名称与您的表不同(并非所有表名都是有效的或适当的类名),您可以使用Table属性明确告诉EF您的
一年前问的这个问题是类似的:DoestheEntityFramework4supportgeneratorsforidvalueslikeNHibernate?但我想知道代码优先CTP是否添加了对身份生成策略的支持。如果没有,有人知道EF中的一个很好的扩展点来实现类似的东西吗?我目前正在处理使用GUID作为标识符的模型类。使用EF插入时,它们会保留其Guid.Empty初始值。我知道您可以将数据库中列的默认值设置为newid()但这违背了客户端身份生成的目的。EntityFramework是否不够成熟,无法在分布式、断开连接的系统中使用? 最佳答案
我正在使用EntityFramework4.1,有时确实需要调用存储过程。其中一些返回整数作为返回值。例如CREATEPROCEDURE......INSERTINTO...SELECT@@Identity(更新:删除了返回值,不相关。我们正在返回身份)我的存储库类中有以下代码:varorderNo=context.Database.SqlQuery("EXECmyProc").Single();此操作失败并显示错误消息从具体化的“System.Decimal”类型到“System.Int32”类型的指定转换无效。如果我把上面的代码改成varorderNo=context.Databa