从Lambda中的多个实体创建单个类型

时间:2013-07-26 19:21:27

标签: c# wpf entity-framework lambda

我有3个实体

My Entities 我想将 tblCondition BusinessAreas 压缩成一个对象。我想要的是Category.ID, Category.Category, BusinessArea.ID, BusinessArea AreaName

我知道这可以通过使用Lambda创建Anonymous类型来完成,但我对Lampda或LINQ相对不熟练。

忘记提到我需要通过第一个来到两个表。

我的原始电话看起来像这样。

myConditionTemplate = EE.ConditionTemplates.Where(c => c.TemplateCode == TextBoxSearchConditionCode.Text).FirstOrDefault();

1 个答案:

答案 0 :(得分:1)

以下是官方文档:http://msdn.microsoft.com/en-us/library/vstudio/bb384105.aspx

基本上在您的选择部分中使用不带类名的new关键字,如:

select new { Category.ID, Category.Category, BusinessArea.ID, BusinessArea.AreaName }

网页仅显示在查询表单中使用Linq的示例,但是以方法形式执行:

var results = db.GetStuff().Select(x => new { x.ID, x.Name });

Ack,这可能不太清楚。我刚刚在How to do a join in linq to sql with method syntax?找到了一些很好的例子。这是一个不同的问题,但答案的示例向您展示了如何为连接的可枚举集执行lamba。

更新:由于您更新了问题,请查看是否有帮助:

var results = myConditionTemplate.Select(x => new { CategoryID = x.tblCondition.ID, Category = x.tblCondition.Category, BusinessAreaID = x.tblCondition.BusinessArea.ID, AreaName = x.tblCondition.BusinessArea.AreaName});