Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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# 我可以只使用一个外键提取多个列的值吗?_C#_Sql_Entities - Fatal编程技术网

C# 我可以只使用一个外键提取多个列的值吗?

C# 我可以只使用一个外键提取多个列的值吗?,c#,sql,entities,C#,Sql,Entities,我正在从事一个包含SQL的C项目,主要使用实体和linq 假设我有两张桌子 表1 表2 我想在datagrid中显示名称、日期和价格。 如何仅通过引用作为表1主键的外键将两个或一个值(如果我们这样做,反之亦然)从表1中提取出来?如果您唯一的问题是sql语句,您可以使用类似以下内容或join: select t1.name, t1.date, t2.price from table1 t1, table2 t2 where t1.primary_key = t2.foreign_key; 如果您

我正在从事一个包含SQL的C项目,主要使用实体和linq

假设我有两张桌子

表1

表2

我想在datagrid中显示名称、日期和价格。
如何仅通过引用作为表1主键的外键将两个或一个值(如果我们这样做,反之亦然)从表1中提取出来?

如果您唯一的问题是sql语句,您可以使用类似以下内容或join:

select t1.name, t1.date, t2.price from table1 t1, table2 t2 where t1.primary_key = t2.foreign_key;

如果您有其他问题,请向我们提供更多详细信息…

假设您的数据位于IEnumerable Table1列表和IEnumerable Table2列表中,您可以使用LINQ:

Table1List.Join(Table2List, 
    t1 => t1.PrimaryKey, // replace PrimaryKey by your actual field storing primary key
    t2 => t2.fkTable1,
    (t1, t2) => new { t1.Name, t1.Date, t2.Price } 
 )
这将或多或少地对应于SQL查询:

SELECT t1.Name, t1.Date, t2.Price
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.PrimaryKey = t2.fkTable1

是,您可以通过连接两个表来选择任何列。
示例:从表1中选择名称、日期和价格表1上的表2内部连接。key=table2.fktable1

您的意思是您正在使用实体框架吗?我不知道您期望的结果是什么,请将其添加到您的问题中。你可以加入这些表,然后只传递一次密钥?这与c有什么关系?欢迎来到堆栈溢出。为了得到好的答案,你需要问一些不同的问题:1。你需要事先做一些研究。这很可能会回答你的问题,因为它似乎是非常基本的。您应该提供一些代码和示例数据来阐明您的观点。如果给定的FK1在表2中有多个条目,您想怎么做?你也试过什么?你哪里有问题?在一个SELECT中使用两个表是非常糟糕的做法-最好使用JOIN
Table1List.Join(Table2List, 
    t1 => t1.PrimaryKey, // replace PrimaryKey by your actual field storing primary key
    t2 => t2.fkTable1,
    (t1, t2) => new { t1.Name, t1.Date, t2.Price } 
 )
SELECT t1.Name, t1.Date, t2.Price
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.PrimaryKey = t2.fkTable1