我对Entity Framework有什么问题选择特定的列而不是整个对象?

Not*_*Dan 0 .net c# entity-framework

如果我从此更改我的实体框架查询,我将遇到什么问题:

var contracts = from contract in Context.Contracts select contract;
Run Code Online (Sandbox Code Playgroud)

对此:

var contracts = from contract in Context.Contracts select new MyContract{ Key = contract.key, Advertiser = new MyAdvertiser{ Key = contract.Advertiser.Key } };
Run Code Online (Sandbox Code Playgroud)

即从选择合同,到根据合同的列选择新对象.

在任何一种方法中,我在加载后将实体映射到域对象,并在保存时返回到实体.

Dav*_*son 5

这种方法没有错.要记住以下几点:

1)应始终完全填充域对象,以防止域进程尝试使用看起来像是但不存在的数据的情况.如果您具有不需要域对象的完整数据集的相同域进程,并且您不希望必须加载不必要的数据,请创建第二个域对象以在这些进程中使用.

2)数据库服务器可以优化具有相同字段列表的查询,而不是具有不同字段列表的查询.如果性能对此应用程序至关重要,请确保测量此更改对查询性能的影响.看起来限制结果集会提高性能,而且通常会这样做,但并非总是如此.