Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.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中的内部连接到实体_C#_.net_Linq To Entities - Fatal编程技术网

C# linq中的内部连接到实体

C# linq中的内部连接到实体,c#,.net,linq-to-entities,C#,.net,Linq To Entities,我有一个名为Customer的实体,它有三个属性: public class Customer { public virtual Guid CompanyId; public virtual long Id; public virtual string Name; } public class Splitting { public virtual long CustomerId; public virtual long Id; public vi

我有一个名为Customer的实体,它有三个属性:

public class Customer {
    public virtual Guid CompanyId;
    public virtual long Id;
    public virtual string Name;
}
public class Splitting {
    public virtual long CustomerId;
    public virtual long Id;
    public virtual string Name;
}
我还有一个名为Spliting的实体,它有三个属性:

public class Customer {
    public virtual Guid CompanyId;
    public virtual long Id;
    public virtual string Name;
}
public class Splitting {
    public virtual long CustomerId;
    public virtual long Id;
    public virtual string Name;
}
现在我需要编写一个获取companyId和customerId的方法。该方法应返回与companyId中特定customerId相关的拆分列表。 大概是这样的:

public IList<Splitting> get(Guid companyId, long customrId) {    
    var res=from s in Splitting 
            from c in Customer 
            ...... how to continue?

    return res.ToList();
}
public IList get(Guid companyId,long customrId){
var res=从s开始拆分
从c到客户
……如何继续?
return res.ToList();
}
使用扩展方法:

var res = Splitting.Join(Customer,
                 s => s.CustomerId,
                 c => c.Id,
                 (s, c) => new { s, c })
           .Where(sc => sc.c.Id == userId && sc.c.CompanyId == companId)
           .Select(sc => sc.s);

不能100%确定这两个实体之间的关系,但以下是:

IList<Splitting> res = (from s in [data source]
                        where s.Customer.CompanyID == [companyID] &&
                              s.CustomerID == [customerID]
                        select s).ToList();

IList<Splitting> res = [data source].Splittings.Where(
                           x => x.Customer.CompanyID == [companyID] &&
                                x.CustomerID == [customerID]).ToList();
IList res=(来自[数据源]中的s)
其中s.Customer.CompanyID==[CompanyID]&&
s、 CustomerID==[CustomerID]
选择s.ToList();
IList res=[数据源].Splittings.Where(
x=>x.Customer.CompanyID==[CompanyID]&&
x、 CustomerID==[CustomerID]).ToList();

您可以在visual studio中找到大量Linq示例。 只需选择
Help->Samples
,然后解压缩Linq示例

打开linq样本解决方案并打开SampleQueries项目的LinqSamples.cs

您正在寻找的答案在方法Linq14中:

int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };

var pairs =
   from a in numbersA
   from b in numbersB
   where a < b
   select new {a, b};
int[]numbersA={0,2,4,5,6,8,9};
int[]numbersB={1,3,5,7,8};
变量对=
从一个数字
从数字b中的b开始
其中a
公共IList get(Guid companyId,long customrId){
var res=来自客户数据源中的c
其中c.CustomerId=customrId&&c.CompanyID==CompanyID
从拆分数据块中的s
其中s.CustomerID=c.CustomerID
选择s;
return res.ToList();
}

您已将客户实体粘贴两次,以代替拆分。。请解决为什么你需要公司ID的方法得到。。。拆分具有客户ID,可用于根据传递的客户进行选择ID@Ankur:为了提高安全性,业务层公开的每个方法都需要companyId,以便仅验证其对其实体的影响。有关更完整的示例,请参考是否有一种方法将其编写为lambda查询?如果您是指linq扩展方法(
Select
Join
…查看我的编辑),我从来不知道如何在VS+1中直接获取示例