Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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#_Linq_Inner Join - Fatal编程技术网

C# 在数据表上使用LINQ进行内部联接

C# 在数据表上使用LINQ进行内部联接,c#,linq,inner-join,C#,Linq,Inner Join,我有两个数据表,customerTableDT和customeralasistabledt。它们都是从如下数据库填充的: customerTableDT = UtilityDataAndFunctions.PerformDBReadTransactionDataTableFormat(String.Format("SELECT * FROM {0}", TableNames.customers)); customerAliasesTableDT = UtilityDataAndFunction

我有两个数据表,
customerTableDT
customeralasistabledt
。它们都是从如下数据库填充的:

customerTableDT = UtilityDataAndFunctions.PerformDBReadTransactionDataTableFormat(String.Format("SELECT * FROM {0}", TableNames.customers));

customerAliasesTableDT = UtilityDataAndFunctions.PerformDBReadTransactionDataTableFormat(String.Format("SELECT * FROM {0}", TableNames.customerAliases));
var customerNames = from customers in customerTableDT.AsEnumerable()
                    join aliases in customerAliasesTableDT.AsEnumerable on customers.Field<int>("CustomerID") equals aliases.Field<int>("CustomerID")
                    where aliases.Field<string>("Alias").Contains(iString) select customers.Field<string>("Name")
var customerNames = from customers in customerTableDT.AsEnumerable()
                    join aliases in customerAliasesTableDT.AsEnumerable() on customers.Field<int>("CustomerID") equals aliases.Field<int>("CustomerID")
                    where aliases.Field<string>("Alias").Contains(iString) select customers.Field<string>("Name")
现在我尝试对两个数据表进行内部联接,如下所示:

customerTableDT = UtilityDataAndFunctions.PerformDBReadTransactionDataTableFormat(String.Format("SELECT * FROM {0}", TableNames.customers));

customerAliasesTableDT = UtilityDataAndFunctions.PerformDBReadTransactionDataTableFormat(String.Format("SELECT * FROM {0}", TableNames.customerAliases));
var customerNames = from customers in customerTableDT.AsEnumerable()
                    join aliases in customerAliasesTableDT.AsEnumerable on customers.Field<int>("CustomerID") equals aliases.Field<int>("CustomerID")
                    where aliases.Field<string>("Alias").Contains(iString) select customers.Field<string>("Name")
var customerNames = from customers in customerTableDT.AsEnumerable()
                    join aliases in customerAliasesTableDT.AsEnumerable() on customers.Field<int>("CustomerID") equals aliases.Field<int>("CustomerID")
                    where aliases.Field<string>("Alias").Contains(iString) select customers.Field<string>("Name")
如果我必须用SQL写下我正在尝试做的事情,它非常简单:

SELECT * FROM CUSTOMERS C
INNER JOIN CustomerAliases ALIASES ON ALIASES.CustomerID = C.CustomerID
WHERE CA.Alias LIKE %STRING_HERE%

有什么帮助吗?

您错过了
可数
后面的括号,因此它被视为方法组,而不是
可数

var customerNames=来自customerTableDT.AsEnumerable()中的客户
customers.Field(“CustomerID”)上customerAlasStatableDT.AsEnumerable()中的联接别名等于alias.Field(“CustomerID”)
其中Alias.Field(“别名”)包含(iString)选择customers.Field(“名称”)

您遗漏了
可数
后面的括号,因此它被视为方法组,而不是
IEnumerable

var customerNames=来自customerTableDT.AsEnumerable()中的客户
customers.Field(“CustomerID”)上customerAlasStatableDT.AsEnumerable()中的联接别名等于alias.Field(“CustomerID”)
其中Alias.Field(“别名”)包含(iString)选择customers.Field(“名称”)