2017-10-17 6 views
1

私たちはEFの問題に直面しています。 遅延ロード時にはナビゲーションプロパティがnullを返しています。EFレイジーローディングはnullを返します

注:

public class Student 
{ 
    public Int64 Id { get; set; } 
    public string Name { get; set; } 
    public string Gender { get; set; } 

    public Int64 Address_Id { get; set; } 

    [ForeignKey("Address_Id")] 
    public virtual Address Address { get; set; } 
} 

public class Address 
{ 
    public Int64 Id { get; set; } 
    public string Name { get; set; } 
} 

データベースアクセス:

Student oStudnet = context.Students.FirstOrDefault(); 
Int64 addressId= oStudnet.Address.Id 

oStudnet.Address」の "ヌル例外" 私はデシベルコンテキスト

モデルにthis.Configuration.LazyLoadingEnabled = true;を作りました。 id "//ここでのアドレスはnullです

+1

にアクセスすることができます。ここに掲載されたコードの時点では、これは起こりません(まあ、私はあなたが同じと思うと確信しています:))もう少しコンテキストを提供してください。例えば、明示的に、あるいはあなたが書いた別のヘルパーによって隠された '.AsNoTracking()'拡張を使用しているかもしれません。 –

+0

[生成されたSQLをログに記録](https://stackoverflow.com/questions/1412863/how-do-i-view-the-sql-generated-by-theentent-framework)、データベースに対してチェックします。 –

答えて

-1
Student oStudnet = context.Students.Include("Address").FirstOrDefault(); 

次に、あなたは私がここにあなたのコードは単純化されており、これが起こることを、実際の理由は、結果として省略されて怖いアドレス

+0

あなたの答えをありがとう、Unsderstood ** Include(Eager loading)**はうまくいくでしょう。 **遅延読み込み**の使用例があります。サンプルコードのみを添付しました。 –

関連する問題