1

最初にEF 4.3.1コードを使用して、エンティティユーザーからデータをロードしています

public class User
{
    public int Id { get; set; }
    public IList<UserFile> Files { get; set; }
}

ファイルとともに

public class UserFile
{
    public int Id { get; set; }
    public User User { get; set; }
    public string Name { get; set; }
    public byte[] Data { get; set; }
}

コードの使用

var users = Context.Users.Include(u => u.Files).ToList();

これで動作しますが、ファイルが非常に大きくなる可能性があります。私がやりたいのは、実際のDataプロパティ以外のすべてをロードして、ファイル名だけの長いユーザー リストを効率的に表示できるようにすることです。これにアプローチするクリーンな方法はありますか?

Fileこれまでの私の最善のアイデアは、 1-1 に関連し、フィールドUserFileのみを含む別のエンティティを導入し、. EFのロードを簡単にするためだけに、別の冗長テーブル(DB PoVから)を追加したくありません...DataNameUserFile

4

1 に答える 1

2

1 つの方法はUserBasicFile、データ以外のすべてを含むエンティティを作成してから、 UserFileextendを作成し、プロパティUserBasicFileを含めることです。Dataそうすれば、基本的な情報のみを必要とするユーティリティ関数がある場合、UserBasicFiles を必要とする可能性があり、UserFileそれらの関数に s を提供することもできます。

2 つのエンティティ タイプを持つために必ずしも 2 つのテーブルを持つ必要はないことに注意してください。

于 2012-04-24T21:55:21.397 に答える