草庐IT

c# - EF 5 代码迁移错误 : "There is already an object named _____ in the database"

在进行EF5代码迁移时遇到了一个反复出现的奇怪问题,现在让我无法工作。尝试运行update-database并收到此错误:Thereisalreadyanobjectnamed'RequestStatus'inthedatabase.详细的日志转储:PM>update-database-vUsingStartUpproject'LicensingWorkflow'.UsingNuGetproject'LicensingWorkflow'.Specifythe'-Verbose'flagtoviewtheSQLstatementsbeingappliedtothetargetdataba

c# - 为什么 EF 5.0 在编译为 sql 时不支持此 EF 4.x LINQ 语法?

我有一些代码最近从EF4.2升级到EF5.0(实际上是EF4.4,因为我在.Net4.0上运行)。我发现我必须更改查询的语法,我很好奇为什么。让我从问题开始。我有一个由客户端定期填充的事件日志表。对于每个事件日志,都会在报告表中创建一个条目。这是定期运行的查询,用于发现Report表中还没有条目的任何事件日志。我在EF4.2中使用的查询是:fromelin_repository.EventLogswhere!_repository.Reports.Any(p=>p.EventLogID==el.EventlogID)自升级到EF5.0后,我在运行时收到以下错误:System.NotSu

c# - EF 返回与查询不同的值

所以我刚刚遇到了这个非常奇怪的情况,想知道是否有人知道问题出在哪里。我有以下EFLinq查询。varhierarchies=(fromhierarchyinctx.PolygonHierarchyViewswherehierarchy.DashboardId==dashboardIdselecthierarchy);当我在调试器中检查该查询时,它显示以下SQLSELECT[Extent1].[DashboardId]AS[DashboardId],[Extent1].[CurrentId]AS[CurrentId],[Extent1].[PolygonTypeId]AS[Polygon

c# - ADO EF - TPH 中派生类型之间的错误映射关联

背景我正在使用.NETFramework3.5SP1在VisualStudio2008SP1中使用ADOEntityFramework编写数据访问库。我正在尝试在两个都派生自抽象类型的实体之间创建关联。我使用TablePerHierarchy表示两个实体继承层次结构(TPH)这意味着只有两个表-每个实体继承层次结构一个。注意您可以使用TablePerType(TPT)来避免这个问题,但它有它自己的缺点。参见here和here在继承持久性模型之间进行选择时了解更多详细信息。这是实体模型的设计器View的屏幕截图:这是数据库架构的屏幕截图:假设当您在ADOEntityFrameworkDe

c# - 为什么 EF4 Code First 在存储对象时这么慢?

我目前正在研究db4o存储在我的Web应用程序中的使用情况。我很高兴db4o工作起来如此简单。因此,当我读到CodeFirst方法时,我有点喜欢它,因为使用EF4CodeFirst的方式与使用db4o非常相似:创建您的域对象(POCO),将它们扔到db4o中,然后永不回头。但是当我进行性能比较时,EF4慢得可怕。我不知道为什么。我使用以下实体:publicclassRecipe{privateList_RecipePreparations;publicintID{get;set;}publicStringName{get;set;}publicStringDescription{get

c# - 如何更改 EF Code First 中主键的名称?

我有一个场景,我想更改实体中的主键名称并能够运行update-database-force。请参阅下面的代码和尝试时出现的错误。实体是:publicclassTeam{[Key][HiddenInput(DisplayValue=false)]publicvirtualintId{get;set;}[Display(Name="FullName:")]publicvirtualstringName{get;set;}}实体更改为:publicclassTeam{[Key][HiddenInput(DisplayValue=false)]publicvirtualintTeamId{ge

c# - EF5、SQL Server、经度和纬度

我发现在SQLServer中存储经纬度的最佳类型是十进制(9,6)(引用WhatdatatypetousewhenstoringlatitudeandlongitudedatainSQLdatabases?),所以我这样做了AddColumn("dbo.Table","Latitude",c=>c.Decimal(nullable:false,precision:9,scale:6));AddColumn("dbo.Table","Longitude",c=>c.Decimal(nullable:false,precision:9,scale:6));SQL似乎没问题,一切正常,但是当

c# - EF - 无法将运算符 '==' 应用于类型为 'TId' 和 'TId' 的操作数

我有这个通用类,它使用EntityFramework6.x。publicclassGenericRepositorywhereTEntity,class,IIdentifyable{publicvirtualTEntityGetById(TIdid){using(varcontext=newDbContext()){vardbSet=context.Set();varcurrentItem=dbSet.FirstOrDefault(x=>x.Id==id);returncurrentItem;}}publicvirtualboolExists(TIdid){using(varconte

c# - 如何在 EF Where() 子句中使用 Predicate<T>?

我正在尝试在我的EF过滤代码中使用谓词。这个有效:IQueryablefiltered=customers.Where(x=>x.HasMoney&&x.WantsProduct);但是这个:PredicatehasMoney=x=>x.HasMoney;PredicatewantsProduct=x=>x.WantsProduct;IQueryablefiltered=customers.Where(x=>hasMoney(x)&&wantsProduct(x));运行时失败:TheLINQexpressionnodetype'Invoke'isnotsupportedinLINQt

c# - 如何在 EF 迁移中使用 SqlResource 方法?

MSDN说这个方法“添加一个操作来执行一个SQL资源文件”。它的签名是:protectedinternalvoidSqlResource(stringsqlResource,AssemblyresourceAssembly=null,boolsuppressTransaction=false,objectanonymousArguments=null)而sqlResource参数描述为要执行的SQL资源文件的list资源名称。是一个“SQL资源文件”,和普通的.resx资源文件,如果是这样,它可以包含很多文件,那么如何在这个参数中指定资源文件的名称以及该资源中的文件?或者“SQL资源文