0
私はローカルデータストレージ用のSQLiteデータベースを使用してWPFアプリケーションを開発しています。 NuGetから正しく構成されたApp.configファイルから、EntityFramework 6.1.3とSystem.Data.SQLite 1.0.105.1をインストールしました。WPF、SQLite、Lazy Loading
これらは私のエンティティ
public class Event
{
public Guid Id { get; set; } = Guid.NewGuid();
public DateTime Date { get; set; }
public string Description { get; set; }
public virtual Guid ContractId { get; set; }
public virtual Contract Contract { get; set; }
}
public class Contract
{
public Guid Id { get; set; } = Guid.NewGuid();
[Required]
public string Code { get; set; }
public string Description { get; set; }
public virtual ICollection<Event> Events { get; set; }
}
私は、次のコードを実行すると、私はSystem.NullReferenceException例外を取得し、私はbreakpoingを置けば、私はその契約内のE1を見ることができます無効である。
using (SqliteDbContext ctx = new SqliteDbContext())
{
var e1 = ctx.Events.FirstOrDefault();
MessageBox.Show(e1.Contract.Id.ToString());
}
おかげで、積極的なロードが正常に動作しますが、私はしたいです遅延ロードを使用する... – ssnake
明示的に無効にしない限り、これはSQLiteではサポートされていません。http://www.entityframeworktutorial.net/EntityFramework4.3/lazy-loading-with-dbcontext.aspxまた、EF7では、ナビゲーションプロパティの遅延読み込みをサポートしていません。https://docs.microsoft.com/en-us/ef/core/querying/related-dataだから、熱心なローディングがおそらくあなたの唯一の選択です。 – mm8
SQliteではサポートされていませんか? 投稿者 https://stackoverflow.com/questions/10458395/entity-framework-sqlite-and-lazy-loading SQLiteがサポートしているようです。 – ssnake