我有一个问题:
var transactions = from t in db.Transactions
where t.SellingPrice != 0
select new { t.CommissionPercent, t.SellingPrice };
但实际上,我需要避免使用匿名类型,因为它只是readonly并选择我的“transaction”项目上的所有属性/列。
我原以为会是这样的:
var transactions = from t in db.Transactions
where t.SellingPrice != 0
select t.SellingPrice, t.CommissionPercent, t.Etc...
或者...
var transactions = from t in db.Transactions
where t.SellingPrice != 0
select t.SellingPrice
select t.CommissionPercent
select t.Etc...
是否无法检索对象对属性的所有内容并将其传递给Ienumerable?
答案 0 :(得分:25)
如果您想避免使用匿名类型并获取所有内容,为什么不返回原始交易项目的IEnumerable
?
var transactions = from t in db.Transactions
where t.SellingPrice != 0
select t;
答案 1 :(得分:12)
此外,如果对象之间存在 join 条件,我们可能会使用..
var result = (from t in db.Transactions
join te in db.TransactionsEntries
on t.WorkorderID equals te.WorkorderID
select new { t, te }).ToList();
答案 2 :(得分:8)
我相信这会奏效。
var transactions = from t in db.Transactions
where t.SellingPrice != 0
select t;
答案 3 :(得分:6)
我想你想要
var transactions = db.Transactions.Where(t => t.SellingPrice != 0).ToList();
或
var transactions = db.Transactions.Where(t => t.SellingPrice != 0).AsEnumerable();
如果你真的只想要IEnumerable
答案 4 :(得分:4)
试
var transactions = from t in db.Transactions
where t.SellingPrice != 0
select t;
答案 5 :(得分:2)
为什么你“需要”避免使用匿名类型?
您有以下选择:
select t
select new { t.CommissionPercent, t.SellingPrice };
select new MyCustomDtoClass { CommissionPercent = t.CommissionPercent, SellingPrice = t.SellingPrice }; //also ok
select new object[] { t.CommissionPercent, t.SellingPrice }
最后一个不方便处理。没办法解决这个问题。告诉我们你想做什么。
答案 6 :(得分:2)
对于单个返回值,您可以使用:
var transactions = (from t in db.Transactions
where t.SellingPrice != 0
select t).FirstOrDefault();
对于IEnumerable返回:
var transactions = (from t in db.Transactions
where t.SellingPrice != 0
select t).ToList();
答案 7 :(得分:0)
var transactions = (from t in db.Transactions
select new
{
t.SellingPrice,
t.CommissionPercent,
...,
...,
t.Etc...
}).AsEnumerable().Select(x => new HomeModel // Create a model which have following properties
{
SellingPrice= x.SellingPrice, //(where SellingPrice is a HomeModel property)
AdCategoryTitle = x.CommissionPercent,
...,
...,
ETc... = t.Etc...
}).ToList();