如何在linq中将整个行转移到模型中,而不将每个属性的名称放在{}中

  • 本文关键字:属性 模型 linq 转移 c# sql .net linq
  • 更新时间 :
  • 英文 :


我有这个模型

public class model 
{
public string at1{set; get;}
public string at2{set; get;}
public string at2{set; get;}
public string at2{set; get;}
public string at2{set; get;}
};

我创建了一个模型的实例:

List<model> md= new List<model>();

然后我从与model is

同名的表中编写如下查询
md = db.SomeTable.Where(a => a.at1 == '1').Select (row => new model()).ToList()

我正在寻找的是把SomeTable中任何一行的整体放入模型的格式。显然我的代码不工作,返回null数据如果像这样改变它,它工作

md = db.SomeTable.Where(a => a.at1 == '1').Select (row => new model
{ 
at1=a.at1,
at2=a.at2,
at3=a.at3,
at4=a.at4,
at5=a.at5,
).ToList()

我不想把每个属性名称在我的查询,有任何替代?

注意:我不想使用数据库的模型,我的意思是(SomeTable的模型)我想收到查询的结果在另一个模型。(因为join, include等)

我还不能评论,所以把它作为一个答案。

+1使用@MindSwipe的自动装置,如果你可以。在我工作的地方,我们使用Automapper从api响应对象获取信息,并将其映射到视图模型属性。如果您的对象在结构上相似,则非常容易使用。您还可以将其扩展到更复杂的结构。

我还遇到过Dart/Flutter中的实践,其中类有一个映射函数,您可以在其中传递一个json字符串为eg,它映射相关信息。

(不推荐! !)此选项还可能使您容易受到潜在的运行时问题等的影响。我能想到的最后一个选择是使用反射之类的东西来创建一个泛型函数,在这个函数中,你必须遍历类a和类B之间的属性,如果名称匹配,然后设置值。也就是说,我有一种感觉,Automapper可能正在做类似的事情,所以我想为什么要重新发明轮子呢?

相关内容

  • 没有找到相关文章

最新更新