我有3个实体
我想将 tblCondition 和 BusinessAreas 压缩成一个对象。我想要的是Category.ID, Category.Category, BusinessArea.ID, BusinessArea AreaName
。
我知道这可以通过使用Lambda创建Anonymous类型来完成,但我对Lampda或LINQ相对不熟练。
忘记提到我需要通过第一个来到两个表。
我的原始电话看起来像这样。
myConditionTemplate = EE.ConditionTemplates.Where(c => c.TemplateCode == TextBoxSearchConditionCode.Text).FirstOrDefault();
答案 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});