我可以只用一个外键来拉取多列的值吗?

时间:2018-04-19 11:43:57

标签: c# sql entities

我正在开发一个包含SQL的C#项目,主要使用实体和linq。

我们说我有两张桌子。

表1

primary key | fktable1 | price

表2

Route::middleware('auth:api')->group(function(){
    Route::post('user', 'Api\Auth\PassportController@getDetails');
}

我想在数据网格中显示名称,日期和价格。 如果我们这样做,我该怎么拉 - 或者反之亦然 - 只通过引用外键(表1的主键)来表1中的值?

3 个答案:

答案 0 :(得分:0)

如果您唯一的问题是sql语句,您可以使用类似这样的东西(或“join”):

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

如果您有其他问题,请向我们提供更多详情......

答案 1 :(得分:0)

假设您的数据在IEnumerable<Table1> Table1List和IEnumerable<Table2> Table2List中,您可以使用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

答案 2 :(得分:0)

是的,您可以通过加入两个表来选择任何列。 例如:HttpSession