Итак, у меня есть класс, который создается при создании соединения Linq to SQL.Linq to SQL: заполнение расширенного сгенерированного класса в запросе Linq
Это в основном выглядит следующим образом:
public partial class Product
{
public string Name { get; set; }
public string Description { get; set; }
}
Я расширил его, добавив еще одно свойство, например:
public partial class Product
{
public string Category { get; set; }
}
Теперь у меня есть запрос Linq, чтобы получить подробную информацию о продукции, как это:
public List GetProducts()
{
using(MyDataContext dc = new MyDataContext())
{
var products = from p in dc.Products
select p;
}
}
Новое поле, которое я добавил (категория), можно получить в запросе Linq, используя «p.Categor y.Description».
Итак, мой вопрос заключается в том, что это лучший способ заполнить класс Product, включая новое свойство Category.
Я бы предпочел, чтобы был способ автоматически заполнить сгенерированную часть класса Product, используя данные в запросе Linq «select p».
Я также думал о создании конструктора на моем частичном классе, который принимает продукт (выберите P) и категорию (выберите p.Category.Description)
Doing что-то вроде этого:
// 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;
}
Но есть ли способ сделать это без необходимости перечислять каждое свойство в классе Product и устанавливать каждый из них отдельно?
Im confused .... мысль Категория была строкой? Свойства расширения невозможно в C# ... – James
Категория - это строка в моем расширенном классе. Но это таблица в базе данных. Я буду использовать поле «Описание» в таблице «Категория», чтобы заполнить свойство «Категория» в моем расширенном классе :) – Eoinii