序列不包含匹配元素——EntityFramework我正在使用EF6.1.0,正在创建一个WCF服务。首先,我创建了一个包含我的实体、Mappers和Context的类库,用于初始化EF。我还创建了一个包含上下文实例并具有以下代码的类:publicIQueryableGetAll(){returncontext.[Entity].AsQueryable();另一方面,我在同一项目上创建了一个WCF服务,并在.svc文件中调用函数GetAll(),如下所示:publicListGetList(){[iObject]repository=new[Object](newContext());返回存储库.GetAll().ToList();}该项目正在建设中。我什至检查了配置,它在正确的数据库中。但是,应该创建的数据库和表都不存在,返回报错“Sequencecontainsnomatchingelement”。如果这令人困惑,您可以向我指出一些使用CodeFirstEntityFramework的WCF服务链接。我有一个错误,我得到一个System.InvalidOperationException消息Sequence不包含匹配的元素,因为传递给.HasColumnType()的字符串值在我的表配置中不正确。我刚遇到同样的问题。CodeFirstfromdatabase向导将其中一列生成为[Column(TypeName="date")]。调用.saveChanges()导致Sequence不包含任何元素。将定义的列更改为[DataType(DataType.DateTime)]并且它按预期工作。添加迁移或更新数据库时,我也遇到了同样的错误。原因是我使用了错误的列类型[Column("ImageType",TypeName="varchar(20)")]publicstringImageType{get;放;但是当我从varchar中删除20时,它开始为我工作[Column("ImageType",TypeName="varchar")]publicstringImageType{get;放;如果列类型无效,实体框架将抛出??此异常。例如://这将引发错误。没有这样的类型名称。[Column(TypeName="Invalid")]publicstringColumn1{get;放;}//有效。[Column(TypeName="varchar")]publicstringColumn1{get;放;看到这些例子:是的。也抓住了我,因为在一个分散注意力的时刻,我把文本long放在一个bigint列中,即HasColumnType("long")-你能相信吗?!真是个小丑!生成器通常会正确地创建您的EF类,但如果您不能或不想使用它,那么您可以使用带有一些静态字符串字段的静态类,这样您就可以非常漂亮地让它变得聪明起来:publicstaticclassDatabaseColumnTypes{//////将其用于“布尔”值。///公共静态字符串BitColumn="bit";//////将其用于“字节”值。///publicstaticstringTinyIntColumn="tinyint";//////将其用于“长”值。///公共静态字符串BigIntColumn="bigint";//////将其用于“字符串”值。///公共静态字符串VarcharColumn="varchar";//etc}现在你可以做HasColumnType(DatabaseColumnTypes.BigIntColumn)我知道,我知道,这很懒惰,我应该记住类型,但我经常发现自己在StackOverflow上查找它,这只是为了节省时间......我这条消息是因为对Column属性中的TypeName的误解。列属性:[Column(Stringname,properties:[Order=int],[TypeName=string])name:db表中列的名称。order:列的顺序,从零索引开始。(可选)TypeName:列的数据类型。(可选)此TypeName必须只是类型的名称,并且不得包含精度、比例、长度或其他任何内容。例如,以下将导致错误[Column(TypeName="nvarchar(600)")]虽然下面的方法可以正常工作,但您可能希望具有特定的列大小,这种方法是使用流畅的API[Column(TypeName="nvarchar")]对我来说,当我将我的Membership模型重命名为Student时,它帮助了我将类项目设置为启动项目时,我得到了相同的错误消息,并且我在有一个导航属性在其他类中:publicIListMembers{get;放;}我改为:publicIListStudents{get;放;}问题解决了!使用FluentAPI定义Table-Per-Type继承(作为从EntityTypeConfiguration派生的类)并错误地重新定义已在基类配置中定义的字段(两者相同)时出现此错误。我正在使用EntityFramework6.2.0nuget包。以上是C#学习教程:Sequence不包含匹配元素——EntityFramework分享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
