J'essaie d'utiliser Linq pour créer un objet qui contient lui-même 2 objets de données. À partir de l'expression Linq, j'essaie de configurer les objets directement plutôt que d'avoir une fonction inbetween dans la classe contenant.Linq pour plusieurs objets utilisant MVC
La classe contenant ressemble à ceci:
public class SupplierCategories
{
public category _category;
public category_sub _category_sub;
private bool _IsActive;
private int? _SupplierID;
public SupplierCategories()
{
}
public bool IsActive
{
get
{
return _IsActive;
}
set
{
_IsActive = value;
}
}
public int? SupplierID
{
get
{
return _SupplierID;
}
set
{
_SupplierID = value;
if (_SupplierID != null) // The county is active if there is a supplier ID matching
{
_IsActive = true;
}
}
}
}
Note: catégorie et objets category_sub sont tous mis en place par l'Entity Framework.
lien Mon expression a 2 tables et ressemble à ceci:
public IEnumerable<SupplierCategories> GetAllOrdered()
{
IEnumerable<SupplierCategories> areaList;
var results = from cat in dbContext.categories
join sub in dbContext.category_sub on cat.id equals sub.categoryid
orderby cat.id ascending, sub.name ascending
select new SupplierCategories
{
_category = { new category { cat.id, cat.name } },
_category_sub = { new category_sub { sub.id, sub.categoryid, sub.name } }
};
areaList = results.ToList();
return areaList;
}
Espérons que vous pouvez voir que je suis en train de créer le « _category » et objets « _category_sub » directement.
L'erreur que je reçois est:
Erreur 5 Impossible d'initialiser le type 'Essential_Collections.Models.category' avec un initialiseur de collection car il ne met pas en œuvre 'System.Collections.IEnumerable' D : \ Websites \ Essential Collections \ development \ build \ Essential Collections \ Modèles \ SupplierCategories \ SupplierCategoriesRepository.cs 51 37 Collections essentielles
Toute solution ou peut-être d'autres approches seraient reçues avec reconnaissance
Merci beaucoup, fonctionne très bien. Cependant, si je voulais créer des objets qui ne correspondent pas directement aux tables, pourrais-je faire quelque chose comme ci-dessus en spécifiant des valeurs individuelles? – Billyhomebase
@Billyhomebase: @BFree souligne où vous vous trompiez avec vos constructeurs d'objets pour category et category_sub. Si vous avez un constructeur approprié ou si vous identifiez correctement les propriétés que vous initialisez, vous pouvez instancier de nouveaux objets pour ceux-ci. – Lazarus
Si cela "fonctionne bien", je suggère de l'accepter comme la réponse. –