【发布时间】:2010-02-22 20:32:58
【问题描述】:
好的,我有一个在创建 Linq to SQL 连接时生成的类。
基本上是这样的:
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;
}
}
可以使用“p.Category.Description”在 Linq 查询中检索我添加的新字段(Category)。
所以我的问题是,这是填充 Product 类(包括新的 Category 属性)的最佳方式。
如果有一种方法可以通过使用 Linq 查询“select p”中的数据自动填充 Product 类的生成部分,我会更喜欢。
我还想过在我的部分类上创建一个构造函数,它接受产品(选择 P)和类别(选择 p.Category.Description)
做这样的事情:
// 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 类中的每个属性并单独设置它们??
【问题讨论】:
-
我很困惑....认为类别是一个字符串?扩展属性在 c# 中是不可能的...
-
Category 是我扩展类中的一个字符串。但它是数据库上的一个表。我将使用 Category 表上的 Description 字段来填充我的扩展类上的 Category 属性:)
标签: c# linq-to-sql partial