Entity Framework には、親オブジェクトへの外部キーであるフィールドのみが設定されている子オブジェクトを取得するオプションが用意されていますか?
サンプル コードは、これをよりよく示している可能性があります。
次のPOCOクラスがあると仮定します...
public abstract class Base
{
public Guid Id { get; set; }
}
public class User : Base
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Photo : Base
{
public string Description { get; set; }
public User UploadedBy { get; set; }
}
...そして、正しく構成したと仮定すると、オブジェクトを含むDbContext
すべてのリストをどのように照会しますが、そのオブジェクトにはプロパティのみが含まれていますか?Photos
UploadedBy
UploadedBy
Id
私はこれができることを知っています...
return await _dbContext.Photos.Include(p => p.UploadedBy).ToListAsync();
...しかし、それはオブジェクト全体を返しUser
ます。
私はこのようなことをしたい...
return await _dbContext.Photos.Include(p => p.UploadedBy.Id).ToListAsync();
Id
...プロパティのみを戻したいことを示します。
これらのインクルードを連鎖させることができれば、返したい子オブジェクトの各プロパティを選択できます。
またはさらに良いことに、よりグローバルなレベルで設定を構成できるようにしたいと考えていPhotos
ます。もっと。
ただし、各 POCO オブジェクトに対して次の拡張メソッドを作成するだけでよいため、最後の要求はそれほど重要ではありません...
public static IQueryable<Photo> IncludeForigenKeys(this PhotoAlbumDbContext context){
return context.Photos
.Include(photo => photo.UploadedBy.Id);
}