Maj*_*jid 30 c# linq linq-to-entities concatenation argumentnullexception
我尝试使用此代码添加b到books:
IEnumerable<Book> books =null;
foreach (Book b in context.Books.AsEnumerable())
if (someConditions)
books = books.Concat(new[] {b});
Run Code Online (Sandbox Code Playgroud)
但在最后一行代码中给出了这个错误:
System.ArgumentNullException:值不能为null.参数名称:首先
似乎null Collection无法连接.我使用EF,所以我应该如何初始化我Collection没有东西,我可以连接到它?
Rod*_*pez 73
它接缝你要做的就是过滤你的context.Books按一些标准.
IEnumerable<Book> books = context.Books.Where(b => someConditions);
Run Code Online (Sandbox Code Playgroud)
如果你仍然需要空的IEnumerable,你可以调用Enumerable.Empty():
IEnumerable<Book> books = Enumerable.Empty<Book>();
Run Code Online (Sandbox Code Playgroud)
这就是您正在尝试做的事情:
IEnumerable<Book> books = Enumerable.Empty<Book>();
books = books.Concat(context.Books.AsEnumerable().Where(b => someCondition));
Run Code Online (Sandbox Code Playgroud)
或者,如果您想从 null 开始,您可以这样做:
IEnumerable<Book> books = null;
var moreBooks = context.Books.AsEnumerable().Where(b => someCondition);
books = books == null ? moreBooks : books.Concat(moreBooks);
Run Code Online (Sandbox Code Playgroud)
...虽然我有几个问题关于为什么你想要/需要这样做。