Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ到SQL:属性的可重用表达式?_C#_Linq_Linq To Sql_Delegates_Expression - Fatal编程技术网

C# LINQ到SQL:属性的可重用表达式?

C# LINQ到SQL:属性的可重用表达式?,c#,linq,linq-to-sql,delegates,expression,C#,Linq,Linq To Sql,Delegates,Expression,请原谅我不能把标题说得更准确些 基本上,我有三个LINQ对象链接到表。一个是产品,另一个是公司,最后一个是映射表映射,用于存储公司销售的产品以及该公司引用该产品的ID 我现在检索的产品列表如下: var options = new DataLoadOptions(); options.LoadWith<Product>(p => p.Mappings); context.LoadOptions = options; var products = ( from p in

请原谅我不能把标题说得更准确些

基本上,我有三个LINQ对象链接到表。一个是产品,另一个是公司,最后一个是映射表映射,用于存储公司销售的产品以及该公司引用该产品的ID

我现在检索的产品列表如下:

var options = new DataLoadOptions();
options.LoadWith<Product>(p => p.Mappings);
context.LoadOptions = options;

var products = (
    from p in context.Products
    select new {
        ProductID = p.ProductID,
        //BackendProductID = p.BackendProductID,
        BackendProductID = (p.Mappings.Count == 0)
            ? "None"
            : (p.Mappings.Count > 1)
                ? "Multiple"
                : p.Mappings.First().BackendProductID,
        Description = p.Description
    }
).ToList();
列表仍然是一样的,但它现在对每个产品进行查询,以获取其BackendProductID。代码更整洁,可重用,但现在的性能很糟糕

我需要的是某种表达或授权,但我无法动脑去写。它总是以查询每一个产品而告终


任何帮助都将不胜感激

我无法给您提供比您更好的解决方案,但作为一种解决方法

也许您可以在数据库中创建一个视图,您可以像处理表一样将视图拖到设计器中。用户可以从视图中读取数据。我认为这将提高性能


祝你好运。

我不能给你一个比你更好的解决方案,但作为一种解决办法

也许您可以在数据库中创建一个视图,您可以像处理表一样将视图拖到设计器中。用户可以从视图中读取数据。我认为这将提高性能

祝你好运

public string BackendProductID
{
    get
    {
        if (Mappings.Count == 0) return "None";
        if (Mappings.Count > 1) return "Multiple";
        return Mappings.First().BackendProductID;
    }
}