J'ai une question:
var transactions = from t in db.Transactions
where t.SellingPrice != 0
select new { t.CommissionPercent, t.SellingPrice };
Mais en réalité, je dois éviter d'utiliser un type anonyme car il est en lecture seule et sélectionner toutes les propriétés/colonnes sur mon élément "transaction".
J'aurais pensé que ce serait quelque chose comme ça:
var transactions = from t in db.Transactions
where t.SellingPrice != 0
select t.SellingPrice, t.CommissionPercent, t.Etc...
Ou...
var transactions = from t in db.Transactions
where t.SellingPrice != 0
select t.SellingPrice
select t.CommissionPercent
select t.Etc...
N'y a-t-il aucun moyen de récupérer tout ce que l'objet possède pour les propriétés et de le transmettre à l'Ienumerable?
Si vous souhaitez éviter les types anonymes et obtenir tout, pourquoi ne pas simplement renvoyer un IEnumerable
de l'élément de transaction d'origine?
var transactions = from t in db.Transactions
where t.SellingPrice != 0
select t;
De plus, s'il y a une condition join entre les objets, nous pouvons obtenir le résultat en utilisant ..
var result = (from t in db.Transactions
join te in db.TransactionsEntries
on t.WorkorderID equals te.WorkorderID
select new { t, te }).ToList();
Je crois que cela fonctionnerait.
var transactions = from t in db.Transactions
where t.SellingPrice != 0
select t;
Je pense que tu veux
var transactions = db.Transactions.Where(t => t.SellingPrice != 0).ToList();
ou
var transactions = db.Transactions.Where(t => t.SellingPrice != 0).AsEnumerable();
si vous voulez vraiment juste un IEnumerable
essayer
var transactions = from t in db.Transactions
where t.SellingPrice != 0
select t;
Pour une seule valeur de retour, vous pouvez utiliser:
var transactions = (from t in db.Transactions
where t.SellingPrice != 0
select t).FirstOrDefault();
Pour un retour IEnumerable:
var transactions = (from t in db.Transactions
where t.SellingPrice != 0
select t).ToList();
Pourquoi avez-vous "besoin" d'éviter un type anonyme ici?
Vous disposez des options suivantes:
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 }
Le dernier n'est pas pratique à manipuler. Pas question. Dites-nous ce que vous voulez faire.
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();