在我的数据库,有表有几十列:如何创建可重用的实体框架投影表达式?
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模型不匹配,最好不要使用模型生成器。 –