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(“名称”)