2012-02-29 22 views
0

私のプロジェクトでは、MySQLでEntity Frameworkを使用しています。 このコード:なスタックトレースでSystem.ArgumentNullException: Value cannot be null. Parameter name: keyエンティティのフレームワーク:値はnullにはできません。パラメータ名:キー

objectContext.users.Include("posts").Take(2).ToList() 

は例外をスローobjectContext.users.Take(2).ToList()またはobjectContext.users.Include("posts").ToList()が正常に動作していることは興味深いです

[ArgumentNullException: Value cannot be null. 
Parameter name: key] 
    System.Collections.Generic.Dictionary`2.FindEntry(TKey key) +12670485 
    MySql.Data.Entity.Scope.GetFragment(String name) +27 
    MySql.Data.Entity.SelectStatement.AddDefaultColumns(Scope scope) +177 
    MySql.Data.Entity.SelectStatement.Wrap(Scope scope) +90 
    MySql.Data.Entity.SelectGenerator.WrapJoinInputIfNecessary(InputFragment fragment, Boolean isRightPart) +251 
    MySql.Data.Entity.SelectGenerator.HandleJoinExpression(DbExpressionBinding left, DbExpressionBinding right, DbExpressionKind joinType, DbExpression joinCondition) +110 
    MySql.Data.Entity.SelectGenerator.Visit(DbJoinExpression expression) +33 
    MySql.Data.Entity.SqlGenerator.VisitInputExpression(DbExpression e, String name, TypeUsage type) +50 
    MySql.Data.Entity.SelectGenerator.VisitInputExpressionEnsureSelect(DbExpression e, String name, TypeUsage type) +19 
    MySql.Data.Entity.SelectGenerator.Visit(DbProjectExpression expression) +45 
    MySql.Data.Entity.SqlGenerator.VisitInputExpression(DbExpression e, String name, TypeUsage type) +50 
    MySql.Data.Entity.SelectGenerator.VisitInputExpressionEnsureSelect(DbExpression e, String name, TypeUsage type) +19 
    MySql.Data.Entity.SelectGenerator.Visit(DbSortExpression expression) +61 
    MySql.Data.Entity.SqlGenerator.VisitInputExpression(DbExpression e, String name, TypeUsage type) +50 
    MySql.Data.Entity.SelectGenerator.VisitInputExpressionEnsureSelect(DbExpression e, String name, TypeUsage type) +19 
    MySql.Data.Entity.SelectGenerator.Visit(DbProjectExpression expression) +45 
    MySql.Data.Entity.SelectGenerator.GenerateSQL(DbCommandTree tree) +73 
    MySql.Data.MySqlClient.MySqlProviderServices.CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree) +401 
    System.Data.EntityClient.EntityCommandDefinition..ctor(DbProviderFactory storeProviderFactory, DbCommandTree commandTree) +608 

誰でもこの問題が発生しましたか?

答えて

3

はい。まったく同じ問題。私は、joinの存在下でtakeが問題であると思われることを確認します。私の場合は、オブジェクトの上にtakeを直接投射しているので、プロジェクション後にローカルではなくDBに直接EFクエリーを投射しているので(あなたのobjectContext.users.Include("posts").ToList()の等価物は、経過時間とメモリ消費の面で大きな違いになります。

関連する問題