当前位置: 首页 > 编程语言 > C#

实体框架泛型存储库错误分享

时间:2023-04-11 00:24:06 C#

entityframework泛型存储库错误我先撞到一堵砖墙,然后被撞倒了。这是我的代码,使用实体框架模型在控制台应用程序中编写,带有一个名为Hurl的表。只需尝试通过其id回忆对象。这是完整的应用程序代码。使用系统;使用System.Collections.Generic;使用System.Linq;使用系统文本;使用System.Data.Objects;使用System.Linq.Expressions;使用System.Reflection;使用System.Data.Objects.DataClasses;namespaceGenericsPlay{classProgram{staticvoidMain(string[]args){varhs=newHurlRepository(newhurladminEntity());varhurl=hs.Load(h=>h.Id==1);Console.Write(hurl.ShortUrl);控制台.ReadLine();}}publicinterfaceIHurlRepository{TLoad(Expressionexpression);}publicclassHurlRepository:IHurlRepository,IDisposable{privateObjectContext_objectContext;publicHurlRepository(ObjectContextobjectContext){_objectContext=objectContext;}publicObjectContextObjectContext{get{return_objectContext;}}privateTypeGetBaseType(Typetype){TypebaseType=type.BaseType;if(baseType!=null&&baseType!=typeof(EntityObject)){returnGetBaseType(type.BaseType);}返回类型;}私有eboolHasBaseType(Typetype,outTypebaseType){TypeoriginalType=type.GetType();baseType=GetBaseType(类型);返回baseType!=originalType;}publicIQueryableGetQuery(){类型baseType;如果(HasBaseType(typeof(T),outbaseType)){returnthis.ObjectContext.CreateQuery("["+baseType.Name.ToString()+"]").OfType();}else{returnthis.ObjectContext.CreateQuery("["+typeof(T).Name.ToString()+"]");}}publicTLoad(ExpressionwhereCondition){returnthis.GetQuery().Where(whereCondition).First();}publicvoidDispose(){if(_objectContext!=null){_objectContext.Dispose();}}}}这是我遇到的错误:System.Data.EntitySqlExceptionwasunhandledMessage="'Hurl'couldnotberesolvedinthecurrentscopeorcontext.确保所有引用的变量都在范围内,加载了所需的模式,并且名称空间被正确引用,接近转义标识符,第3行,第1列。”Source="System.Data.Entity"列=1ErrorContext="escapedidentifier"ErrorDescription="'Hurl'无法在当前范围或上下文中解析。确保所有引用的变量都在范围内,加载了所需的模式,并且正确引用了命名空间。"这是我试图从http://blog.keithpatton.com/2008/05/29/Polymorphic+Repository+For+ADONet+Entity+Framework.aspx中提取此信息的地方好吧,这个让我感到困惑。我采取了大胆的尝试(在StephenWalther即将出版的ASP.NETMVCUnleashed一书中看到了EFRepository的一部分)并且它起作用了,这是修复方法(替换此方法,注意字符串格式的差异)。关于为什么会发生这种情况的任何建议?在我看来,这可能是一个错误(或我正在做的事情)。无论如何,任何人都感兴趣。(我认为修复这部分会修复EFRepository@KeithPatton的博客文章的全部功能)。publicIQueryableGetQuery(){类型baseType;if(HasBaseType(typeof(T),outbaseType)){returnthis.ObjectContext.CreateQuery(String.Format("[{0}]",baseType.Name.ToString())).OfType();}else{returnthis.ObjectContext.CreateQuery(String.Format([{0}]",typeof(T).Name.ToString()));}}这里还有一个不错的:http://blog.zoolutions.se/post/2010/04/05/Generic-Repository-for-Entity-Framework-for-Pluralized-Entity-Set.aspx以上是C#学习教程:entityframeworkgeneralrepository错误分享如果对你有用,需要了解更多C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: