ターゲットプロバイダーがSQLServerCEの場合に取得しNullReferenceException
ますが、SQLServerExpressを使用すると機能します。return...
にアクセスしようとすると、例外が発生しますComments
。モデルは非常に単純であり、コードから推測できます。助けてくれてありがとう!ちなみに、私はEntityFrameworkコードファースト4.3とSQLServerCE4.0を使用しています。
SQLServerExpressでプロバイダーと同じコードを使用する=正常に実行される
SQLServerCEでプロバイダーと同じコードを使用する=例外エラー
また、SQLServerCEにも問題はありません。それは私のマシンで動作し、EntityFrameworkのコードファーストおよびasp.net認証で単一テーブル操作を実行しました。関連するエンティティでこのようなネストされた追加/削除を行ったことがないので、なぜこれが機能しないのか興味があります。
db.Persons.Add(new Person()
{
FullName = "JC Viray",
Comments = new List<Comment>(){
new Comment(){CommentContent="Hello!"},
new Comment(){CommentContent="World!"}
}
});
db.SaveChanges();
return db.Persons.FirstOrDefault().Comments.FirstOrDefault().CommentContent;
また、SQL Server Expressでは、データを調べるとコメントが表示されているのが気になります。
SQL Server CEでは、テーブルが空Persons
の間、テーブルのみにデータがあります。Comments
編集:
それが役立つ場合は、ここにモデルがあります:
public class Person
{
[Key]
public int PersonId { get; set; }
public string FullName { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
}
public class Comment
{
[Key]
public int CommentId { get; set; }
public string CommentContent { get; set; }
[ForeignKey("Person")]
public int PersonId { get; set; }
public virtual Person Person { get; set; }
}