我在我的ASP.NETMVC应用程序中使用EntityFrameworkCodeFirst。我的一个类(class)有几列加在一起。我通过在数据库初始值设定项中运行altertable脚本,将这些列存储为表中的计算列。假设类看起来像:publicclassBond{publicdecimalParAmountOfIssuance{get;set;}publicdecimalAccruedInterest{get;set;}publicdecimalPremium{get;set;}publicdecimalOriginalIssueDiscount{get;set;}}改变脚本是这样的
我有以下EntityFramework代码优先代码。创建表并插入数据。但是Club表中有重复的记录。我的操作是:-使用俱乐部创建应用程序创建俱乐部使用人物应用创建人物如何避免重复录入?staticvoidMain(string[]args){Database.SetInitializer(newMyInitializer());CreateClubs();InsertPersons();}publicstaticvoidCreateClubs(){stringconnectionstring="DataSource=.;InitialCatalog=NerdDinners;Integr
该方法采用一个字符串作为查询,并采用一个Object[]数组作为参数,大概是为了避免SQL注入(inject)。然而,世界上没有任何地方记录了应该将什么放入对象数组。关于SO的另一个问题提出了完全相同的问题,但接受的答案不起作用:WhenusingDbSet.SqlQuery(),howtousenamedparameters?我已经尝试了所有我能想到的参数替换形式,但它们都抛出了异常。有什么想法吗?它会不会像这样简单:SqlQuery("SELECT*FROM@table","Users")编辑:这是我尝试过的一些事情(异常是SqlException):varresult=conte
我们首先有一个包含10个子对象和EF6代码的基础对象。在这10个子对象中,5个只有少数(额外)属性,5个具有多个属性(5到20个)。我们将其实现为每个类型一个表,因此我们有一个基本表和每个child1个表(总共10个)。但是,这会在各处创建带有selectcase和unions的巨大选择查询,这也需要EF6秒来生成(第一次)。我读到了这个问题,同样的问题也存在于每个具体类型场景中。所以我们剩下的是每个层次结构的表,但这会创建一个包含大量属性的表,这听起来也不太好。是否有其他解决方案?我考虑过当我想从所有子对象/记录中获取所有项目时可以跳过继承并创建一个联合View。还有其他想法吗?
我将SaveChanges()方法放在try/catchblock中,但我无法捕获SqlExeption。try{db.SaveChanges();}catch(Exceptionex){} 最佳答案 SqlException是System.Data.SqlClient.SqlException类所以你不能捕获这个异常是正常的EntityFrameworkDbContext.SaveChangesMethod()只能抛出以下异常MSDNDbUpdateExceptionDbUpdateConcurrencyExceptionDbEn
根据我的阅读,设置ProxyCreationEnabled=false将阻止更改跟踪和延迟加载。但是,我不清楚更改跟踪涵盖的内容。如果我禁用它并从数据库中获取一个实体,对其进行更改并提交,那么这些更改将被保存。我仍然能够从ChangeTracker获取修改后的条目:ChangeTracker.Entries().Where(x=>x.State==EntityState.Modified).ToList()如果我禁用了代理创建,这是否可行?我想禁用它,但我想清楚我要禁用的是什么。 最佳答案 我可以确认在EF中将ProxyCreati
错误:未处理的异常:System.Data.SqlClient.SqlException:操作失败,因为表“PrivateMakeUpLessons”上已存在名为“IX_ID”的索引或统计信息。模型(简化,构建在单独的测试项目中进行调试):publicabstractclassLesson{publicGuidID{get;set;}publicstringRoom{get;set;}publicTimeSpanTime{get;set;}publicintDuration{get;set;}}publicabstractclassRecurringLesson:Lesson{publ
我遇到一个问题,EF没有在3层WPF应用程序中返回最新数据,我怀疑这与我处理上下文生命周期的方式有关。这是场景:一个UnitOfWork中包含多个存储库。还有一项服务(MyService),它使用UnitOfWork。此UnitOfWork还必须直接从UI调用,而不通过服务。我在主窗口的ViewModel中的某个时刻创建了一个新窗口(首先使用ViewModel):vardialog=newDialogViewModel(_eventAggregator,_unitOfWork,Container.Resolve());这个主窗口ViewModel有一个UnitOfWork,它已被注入(
这个问题在这里已经有了答案:FindingthereasonforDBUpdateException(9个回答)关闭3年前。我有问题,我刚开始学习EFModelFirst,我在一个点上停留了一段时间。我收到这样的错误:“更新条目时发生错误。有关详细信息,请参阅内部异常”我在图表上创建了一个简单的模型,生成了数据库并用C#编写了简单的代码以在表格中只添加一行,但错误一直出现。我发布了带有Diagram/GeneratedDLL/SimpleMain/Anderrorthrowing的截图更大尺寸的链接:http://i.imgur.com/bKGc4wv.png
我们现有的数据库具有复数表名。例如Documents。我正在尝试将新的EFCore和Asp.NetCore与基于本文here的数据库优先方法结合使用我运行以下命令从现有数据库创建模型Scaffold-DbContext"Server=(local);Database=MyDatabase;Trusted_Connection=True;"Microsoft.EntityFrameworkCore.SqlServer-OutputDirModels但是,当我运行脚手架命令时,它会创建具有复数名称的模型。例如Documents表转换为模型名称Documents。我如何更改它以便它可以对模型