2017-04-30 5 views
2

xamarin形式で外部キー(所有者)にアクセスしようとしていますが、nullしか返しません。ここの他の多くの質問によると、スタックには、外部キーからデータを取得するために、遅延読み込みやEager読み込みを使用する必要があるようです。EFコア:外部キーからNULL値が返される

コアで遅延ロードが実装されていないため、代わりにEager Loadingを使用しようとしましたが、xamarin形式とバックエンドの両方でnullという値が得られます。

マイモデル:

public class Building 
{ 
    public int Id { get; set; } 
    public string BuildingName { get; set; } 
    public string Address { get; set; } 
    public int BuildingYear { get; set; } 
    public bool BuildingBool { get; set; } 
    public ApplicationUser Owner { get; set; } 
} 

マイリポジトリ:

public IEnumerable<Building> GetAll() 
{ 
    return _context.buildings.Include(b => b.Owner).ToList(); 
} 

マイコントローラー:

public IEnumerable<Building> Get(Building value) 
{ 
    return _BuildingRepository.GetAll(); 
} 

マイDbContext:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) 
      : base(options) 
    { 
    } 

    public DbSet<Building> buildings { get; set; } 

    protected override void OnModelCreating(ModelBuilder builder) 
    { 
     base.OnModelCreating(builder); 
    } 
} 

これは、データがデータベース内でどのように見えるかです: enter image description here

は、私はそれが仕事を得るために私のリポジトリにInclude(b => b.Owner)以外の何かが必要ですか?

+0

は、オーナーの建物モデルですか? – Biswabid

+0

はい、所有者は建物モデルのApplicationUserです。その場合、 – ebk

+0

コードがさらに必要です。関係はどのように設定されていますか?そのようなすべてのメソッドを取得すると、すべての建物と所有者がメモリに読み込まれます。どちらがbtwの可能性のあるyagniを吸う。より専門的な質問をしてください。しかし、これはcodereviewではありません! :p – Mardoxx

答えて

2

建物モデルでは外来キーのプロパティは表示されず、ナビゲーションプロパティのみが表示されます。

私はあなたが含むべきだと思う:建物のクラスで

public int OwnerId { get; set; } 

を。

関連する問題