在 DBML 中,如何获取具有特定字段而不是所有字段的子 table

in DBML, how to get child table with specific fields rather than all fields

我们正在使用 SQL 服务器,应用程序是使用 DBML 开发的。现在由于预先加载的功能,我遇到了问题。我有一个 table Atable B 有关系。 (A -> B)。现在,当我尝试加载 table A 时,它将获取 table B 的所有字段。罪魁祸首是 table B 有 2-3 列非常重,包含 byte array 数据,由于这些列,获取 table A 的数据也需要太多负载。

问题
当我得到 table A 时,我可以只加载 table B 的几列(不是所有列)吗?

我试过的
我收到此错误:

The expression specified must be of the form p.A, where p is the parameter and A is a property or field member.

当我尝试使用以下代码时 -

DataContext2.DeferredLoadingEnabled = false;
DataLoadOptions options = new DataLoadOptions();
options.LoadWith<A>(x => x.Campaign);
options.LoadWith<A>(x => x.AnotherTable);
options.LoadWith<A>(x => x.B.Select(o => new B
{
    Id = o.Id,
    Name = o.Name,
    Person = o.Person,
}).ToList());
DataContext2.LoadOptions = options;

仅使用 joinselect 必要的列:

var yourQuery = (from t_A in dbContext.Table_A
             join t_B in dbContext.Table_B on t_A.ID equals t_B.ID                 
             //use where operator to filter rows
             select new {
                 Id = t_B.Id,
                 Name = t_B.Name,
                Person = t_B.Person
                  // any field you want from your query
             }).ToList();