【发布时间】:2016-04-18 17:51:59
【问题描述】:
在我的数据库中,有几十列的表:
Table MyEntity:
int Id
string Name
string Email
...dozens of other columns I never use in this project
EF 生成的类具有这些额外列的属性,一个简单的查询获取所有这些额外的列,很浪费。
相反,我想要一个瘦的班级,像这样:
class MyEntity
{
public int Id;
public string Name;
public string Email;
}
当我查询时,我想创建我的瘦对象的实例,显然,我可以这样做:
from x in MyEntity
select new MyEntity {Id = x.Id, Name = x.Name, Email = x.Email };
但我经常这样做,每次输入属性都非常乏味(而且容易出错,因为我可能会忘记一个)。
所以我正在尝试做这样的事情:
from x in MyEntity
select x.ToLiteEntity();
但我不知道如何编写ToLiteEntity 以便它创建一个添加到查询中的表达式,以便它知道从数据库中只选择所需的列。我该怎么做?
【问题讨论】:
-
如果您根本不使用项目中的其他列,为什么要在项目中一开始就引用它们呢?还是它们在数据库中没有默认值,所以没有它们就无法创建新行?
-
因为 EF 模型生成器会创建它们。我可以删除它们,但有时我必须重新生成,我会丢失这些编辑。
-
如果您的数据库架构与您的 EF 模型不匹配,最好不要使用模型生成器。
-
您的所有实体都是从
MyEntity继承吗?
标签: c# .net entity-framework linq-to-entities entity-framework-6