草庐IT

EF7上下文池

全部标签

c# - 具有 linq 数据上下文的存储过程返回值

我正在尝试使用Linq访问存储过程的返回值DECLARE@ValidTokenint=0//Ihavealsotriedusingabitinsteadofaninthere.IFEXISTS(SELECT1FROMTestsWHERETestToken=@Token)select@ValidToken=1return@ValidToken这在通过sqlstudio运行SP时有效。但是我正在尝试使用datacontext类通过linq运行它,它总是返回-1。using(DataEntitiesdataEntities=newDataEntities()){intquery=data.V

c# - 在没有数据库上下文的情况下将 LINQ 表达式转换为 SQL 文本

无论是LINQtoSQL还是LINQtoEntities都已经具备将LINQ转换为SQL文本字符串的能力。但我希望我的应用程序在不使用数据库上下文的情况下进行转换——这反过来意味着一个事件的数据库连接——这两个提供程序都需要。我想将LINQ表达式转换为用于WHERE和ORDERBY子句的等效SQL字符串,而不依赖于DB上下文,以使以下存储库接口(interface)工作:publicinterfaceIStorewhereT:class{voidAdd(Titem);voidRemove(Titem);voidUpdate(Titem);TFindByID(Guidid);//sure

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# - Task.ContinueWith 是否捕获调用线程上下文以继续?

下面的Test_Click是在UI线程上运行的代码的简化版本(带有WindowsFormsSynchronizationContext):voidTest_Click(objectsender,EventArgse){vartask=DoNavigationAsync();task.ContinueWith((t)=>{MessageBox.Show("Navigationdone!");},TaskScheduler.FromCurrentSynchronizationContext());}我是否应该显式指定TaskScheduler.FromCurrentSynchronizat

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# - Entity Framework 将对象从一个上下文传递到另一个上下文

我是EntityFramework的新手,所以请多多包涵。我有一个程序,我想从一个表中选择多条记录并将其存储在一个队列中:privateQueuegetRecordsToProcess(){Queueresults=newQueue();using(MyEntitycontext=newMyEntity()){varquery=fromvincontext.RecordsToProcesswherev.Processed==falseselectv;foreach(RecordsToProcessrecordinquery){results.Enqueue(record);}}}然后我

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