Sequence contains no elements что за ошибка
Почему я получаю ошибку «Sequence contains no elements»?
Я использую следующее, чтобы преобразовать первый символ строки в верхний и добавить точку в конце:
Я получаю последовательность ошибок, не содержащую элементов, если mytext = «» в этой строке:
Буду признателен за ваши предложения.
5 ответов
Я использую запрос LINQ, как показано ниже. object.collection.where(t => t.id.Equals(2)).First(); Я получаю ошибку Sequence contains no elements. Почему результат выдает ошибку, если результат не содержит элементов? Разве он не должен возвращать null, когда результаты не найдены? Вот что.
В нашем приложении у нас есть фрагмент кода с некоторыми Linq-запросами (EF), который иногда вызывает исключение. Это произошло только с конечным пользователем, и мы не в состоянии воспроизвести его до сих пор. Из файла журнала мы получили следующий stacktrace для исключения.
После метода Trim() вы, возможно, получили пустую строку, которая вызовет исключение при попытке захватить первый (несуществующий) символ.
Кажется намного сложнее, чем это имеет право быть.
Я бы предпочел элегантность и использовал регулярное выражение:
Но вы могли бы использовать строковый конструктор.
Вы должны обрезать мой текст, прежде чем проверять его. Также IsNullOrEmpty можно использовать ‘standalone’. Так что попробуй:
Кроме того, если mytext имеет длину 1 символ, то пропустить(1) не удастся.
используйте firstordefault() вместо first(). сначала создайте исключение в случае отсутствия элементов
Похожие вопросы:
Я создал модель с 3 классами, использующими наследование table-per-hierarchy, и с 2 внешними ключами, которые сами ссылаются на таблицу иерархии. У меня есть класс BaseProperty с самостоятельной.
Я хотел создать свой собственный базовый интернет-магазин, поэтому осмотрелся и в конце концов решил изменить учебник MVC Music Store на что-то, адаптированное к моим потребностям. Я все еще.
Я использую запрос LINQ, как показано ниже. object.collection.where(t => t.id.Equals(2)).First(); Я получаю ошибку Sequence contains no elements. Почему результат выдает ошибку, если результат не.
В нашем приложении у нас есть фрагмент кода с некоторыми Linq-запросами (EF), который иногда вызывает исключение. Это произошло только с конечным пользователем, и мы не в состоянии воспроизвести его.
Sequence contains no elements что за ошибка
Answered by:
Question
I’m using the following statemtn to get a record from my database
In case, when this record is not existing in my database I’m receiving the following exception:
System.InvalidOperationException was unhandled
Message=»Sequence contains no elements»
Source=»System.Core»
StackTrace:
at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
at System.Data.Linq.SqlClient.SqlProvider.SqlQueryResults`1.PostProcess(Expression query, IEnumerable`1 results)
at System.Data.Linq.SqlClient.SqlProvider.SqlQueryResults`1.GetEnumerator()
at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
at System.Data.Linq.Table`1.System.Linq.IQueryable.Execute[S](Expression expression)
at System.Linq.Queryable.Single[TSource](IQueryable`1 source, Expression`1 predicate)
at Sample0040.Program.Main(String[] args) in C:\Documents and Settings\oaytekin\Desktop\LINQSamples\Sample0040\Program.cs:line 19
at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
I don’t want to catch this exception with a try/catch block. Is there any another method/way to check, if a record is existing or not?
I want to delete a record. To get and delete the record I’m using the following code
string connString = «Data Source=.;Initial Catalog=AdventureWorks;Integrated Security=True» ;
ProductDataContext productDtcx = new ProductDataContext (connString);
Sequence contains no elements?
I’m currently using a single query in two places to get a row from a database.
The query is fine when retrieving the row to put data in to the text boxes, but it returns an error «Sequence contains no elements» when used to retrieve the row in order to edit it and put it back in to the database. I can’t understand why it might find an appropriate row in one instance but not another.
(Using ASP.NET MVC and LINQ)
8 Answers 8
This can also be caused by the following commands:
because if in the first row of the result there is no info this instruction goes to the default info.
Well, what is ID here? In particular, is it a local variable? There are some scope / capture issues, which mean that it may be desirable to use a second variable copy, just for the query:
Also; if this is LINQ-to-SQL, then in the current version you get a slightly better behaviour if you use the form:
This will solve the problem,
I had a similar situation on a function that calculates the average.
Reason for error:
The query from p in dc.BlogPosts where p.BlogPostID == ID select p returns a sequence.
Single() tries to retrieve an element from the sequence returned in step1.
Single() tries to retrieve an element from the sequence returned in step1 which contains no elements.
Since Single() is not able to fetch a single element from the sequence returned in step1, it throws an error.
Make sure the query (from p in dc.BlogPosts where p.BlogPostID == ID select p)
returns a sequence with at least one element.
I did a few things before getting this error. I made a change to my code-first model but did not run add-migration yet. Then I added an EDMX model to play around with an idea visually. I realized the EDMX model was messing with my code so I removed it. I tried to run add-migration and got «Sequence contains no elements». I upgraded to EF 5 and uninstalled the old Migrations package except for my configurations. Then I tried add-migration again and I am still getting «Sequence contains no elements». Below is the rest of the error.
9 Answers 9
What was causing the issue for me was changing the name together with changing the relations associated with the entity.
So my resolution in my case was:
Looks like a bug. Do you mind filing it at http://entityframework.codeplex.com/workitem/list/advanced with details allowing to reproduce the problem?
I got this error when using Fluent API in OnModelCreating like this:
Changed to this and then everything worked:
Note that using nvarchar(MAX) and similar is not a problem and will not cause this error.
I also encountered this because I was trying to run a migration with a class missing the public access modifier.
I ran into the same problem, I found this issue: Migrations: «Sequence contains no elements» in model differ after renaming PK property when self-referencing relationship with no FK property (independent association) which is the situation that I’m stuck with. it’s a bug but there’s a workaround suggested by a user which I think is a good solution:
«My table was self referencing, dropping the foreign key column and then adding a migration fixed the issue and allowed a rename of the property
Steps to fix, if it helps:
Почему я получаю ошибку «Sequence contains no elements»?
Я использую следующее, чтобы преобразовать первый символ строки в верхний и добавить точку в конце:
Я получаю последовательность ошибок, не содержащую элементов, если mytext = «» в этой строке:
Буду признателен за ваши предложения.
5 ответов
Я использую запрос LINQ, как показано ниже. object.collection.where(t => t.id.Equals(2)).First(); Я получаю ошибку Sequence contains no elements. Почему результат выдает ошибку, если результат не содержит элементов? Разве он не должен возвращать null, когда результаты не найдены? Вот что.
В нашем приложении у нас есть фрагмент кода с некоторыми Linq-запросами (EF), который иногда вызывает исключение. Это произошло только с конечным пользователем, и мы не в состоянии воспроизвести его до сих пор. Из файла журнала мы получили следующий stacktrace для исключения.
После метода Trim() вы, возможно, получили пустую строку, которая вызовет исключение при попытке захватить первый (несуществующий) символ.
Кажется намного сложнее, чем это имеет право быть.
Я бы предпочел элегантность и использовал регулярное выражение:
Но вы могли бы использовать строковый конструктор.
Вы должны обрезать мой текст, прежде чем проверять его. Также IsNullOrEmpty можно использовать ‘standalone’. Так что попробуй:
Кроме того, если mytext имеет длину 1 символ, то пропустить(1) не удастся.
используйте firstordefault() вместо first(). сначала создайте исключение в случае отсутствия элементов
Похожие вопросы:
Я создал модель с 3 классами, использующими наследование table-per-hierarchy, и с 2 внешними ключами, которые сами ссылаются на таблицу иерархии. У меня есть класс BaseProperty с самостоятельной.
Я хотел создать свой собственный базовый интернет-магазин, поэтому осмотрелся и в конце концов решил изменить учебник MVC Music Store на что-то, адаптированное к моим потребностям. Я все еще.
Я использую запрос LINQ, как показано ниже. object.collection.where(t => t.id.Equals(2)).First(); Я получаю ошибку Sequence contains no elements. Почему результат выдает ошибку, если результат не.
В нашем приложении у нас есть фрагмент кода с некоторыми Linq-запросами (EF), который иногда вызывает исключение. Это произошло только с конечным пользователем, и мы не в состоянии воспроизвести его.