c# - 关联表和 Linq to Sql

标签 c# .net sql-server linq linq-to-sql

假设我有树表 User、Product 和 UserProduct。

一个用户可以拥有多个产品,一个产品可以分配给多个用户。

我想使用 linq 检索所有用户产品。我在 User.cs 类中创建了这个方法:

    public List<Product> GetProductList()
    {
        List<Product> listProduct = new List<Product>();
        List<UserProduct> listUserProduct = this.UserProdutcs.ToList();

        foreach (var item in listUserProduct )
        {
            listProduct.Add(item.Product);
        }

        return listProduct; 
    }

我想知道是否有更好的方法?

最佳答案

您可以使用 LINQ 并项目到匿名类型:

var newList = (from products in listProduct
           join uProducts in listUserProduct on products.id equals uProducts.productId
           select new {
                ProductDescription = products.Description,
                ProductAttribute = products.YourAttributes,
                ProductUserProductAttribute = uProducts.YourAttribute
           }).ToList();

关于c# - 关联表和 Linq to Sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10735590/

相关文章:

c# - 在iis上部署后Windows身份验证不起作用

c# - 在 `ZipArchive` 命名空间中找不到 “System.IO.Compression”

.net - 如何确定正在执行的程序集是 Web 应用程序还是 winform/控制台?

sql - 在事务中使用@@IDENTITY 是否安全?

sql - 报表的多连接SQL查询优化

sql-server - 为什么在SQL Server 中乘DECIMAL 时会出现精度损失?

C# 如何过滤列表并删除重复项?

c# - WINAPI/DWMAPI 不规则形状的模糊窗口

.net - 使用 Wix 编辑 Web.Config 连接字符串设置

.net - 为 Azure Function App 启用 VNet 集成时出现 "Http2ConnectionException: HTTP/2 error code ' PROTOCOL_ERROR ' (0x1)"错误