gpt4 book ai didi

c# - Linq 到 SQL : Populating an extended generated class in a Linq Query

转载 作者:行者123 更新时间:2023-11-30 22:47:14 24 4
gpt4 key购买 nike

好的,我有一个在创建 Linq to SQL 连接时生成的类。

基本上是这样的:


public partial class Product
{
public string Name { get; set; }
public string Description { get; set; }
}

I extended it by adding another property, like this:


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 查询中检索我添加的新字段(类别)。

所以我的问题是,这是填充 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 类中的每个属性并单独设置每个属性??

最佳答案

如果您想重新使用现有代码,则必须改为创建 Poco 的代码:

var products = from p in dc.Products
select new Product
{
Name = p.Name,
Description = p.Description,
Category = p.Category.Description
}

或者为了让它更简单,只需执行以下操作:

public partial class Product
{
public string Category
{
get { return this.Category.Description; }
set { this.Category.Description = value; }
}
}

关于c# - Linq 到 SQL : Populating an extended generated class in a Linq Query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2310729/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com