Ok, j'ai une classe générée lorsque j'ai créé la connexion Linq to SQL.Linq to SQL: Remplissage d'une classe générée étendue dans une requête Linq
Il ressemble fondamentalement ceci:
public partial class Product
{
public string Name { get; set; }
public string Description { get; set; }
}
Je tendis en ajoutant une autre propriété, comme celui-ci:
public partial class Product
{
public string Category { get; set; }
}
Maintenant, j'ai une requête Linq pour obtenir les détails du produit, comme celui-ci:
public List GetProducts()
{
using(MyDataContext dc = new MyDataContext())
{
var products = from p in dc.Products
select p;
}
}
Le nouveau champ que j'ai ajouté (Catégorie) peut être récupéré dans la requête Linq en utilisant "p.Categor y.Description ". Donc, ma question est, qui est la meilleure façon de peupler la classe de produit, y compris la nouvelle propriété de catégorie.
Je préférerais s'il y avait un moyen de remplir automatiquement la partie générée de la classe Product en utilisant les données de la requête Linq "select p".
J'ai aussi pensé à la création d'un constructeur sur ma classe partielle qui accepte le produit (sélectionnez P) et la catégorie (sélectionnez p.Category.Description)
Faire quelque chose comme ceci:
// Linq query calling the constructor
var products = from p in dc.Products
select new Product(p, p.Category.Description)
// Product Constructor in my extended partial class
public Product(Product p, string CategoryDescription)
{
this = p; // there must be a way to do something like this
Category = CategoryDescription;
}
Mais existe-t-il un moyen de le faire sans avoir à lister toutes les propriétés de la classe Product et à les définir individuellement?
Im confused .... pensé Catégorie était une chaîne? Les propriétés d'extension ne sont pas possibles dans C# ... – James
La catégorie est une chaîne dans ma classe étendue. Mais c'est un tableau sur la base de données. Je vais utiliser le champ Description sur la table Category pour remplir ma propriété Category sur ma classe étendue :) – Eoinii