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并仅包含该Data字段的实体,Name保留在UserFile. 我宁愿不添加另一个冗余表(来自 DB PoV)只是为了让 EF 更容易加载......

4

1 回答 1

2

一种方法是创建一个UserBasicFile包含除数据之外的所有内容的实体,然后进行UserFile扩展UserBasicFile,并包含该Data属性。这样,如果您的实用程序函数只需要它们可能需要的基本信息UserBasicFileUserFiles 仍然可以提供给这些函数。

请记住,您不一定要拥有两个表才能拥有两种实体类型。

于 2012-04-24T21:55:21.397 回答