c# - 如何在 MVC Controller 中使用 Linq 连接两个表

标签 c# sql-server entity-framework linq

我有两个具有 1:n 关系的 SQL 数据库表。对于我的 ASP.NET MVC 解决方案,我启用了 EF 代码优先迁移并建立了正确的 DBContext 和类。

我想编写一个 MVC Controller 来连接两个表,以便选择在 View 中显示的特定记录。

这是两个类:

        public class Tbl_Group_Communities : Entity
{
    public string GKZ { get; set; }
    public int G_ID { get; set; }
}

    public class Katastralgemeinden : Entity
{
    public string KGNr { get; set; }
    public string KGName { get; set; }
    public string GKZ { get; set; }
    public string GemeindeName { get; set; }
}

到目前为止,我已经能够为表格本身提供一个工作 Controller ,但尚未加入。下面是第一类的工作 Controller :

            public IEnumerable<Tbl_Group_Communities> Get()
    {
        var entities = UnitOfWork.GetAll<Tbl_Group_Communities>().ToList();
        return entities;
    }

我认为,连接可以使用 Linq 完成,但我不知道如何/从哪里开始。 两个表的公共(public)键都是GKZ;因此连接应该通过 GKZ 建立。然后我需要从连接的记录中选择特定的记录,其中 G_ID = 某个值。

如果有人能给我一些帮助,我将非常感激。 马努

最佳答案

您可以进行内部联接,如下所示。

假设:希望您的表名称类似于 Tbl_Group_CommunitiesKatastralgemeinden。换句话说,名称与类名称相同。

from s in db.Tbl_Group_Communities
join sa in db.Katastralgemeinden on s.GKZ equals sa.GKZ
where s.G_ID == 1
select s

您可以在此处了解有关加入的更多信息:Join Operators

关于c# - 如何在 MVC Controller 中使用 Linq 连接两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40320334/

相关文章:

sql-server - 如何在 SQL Server 中真正创建零长度二进制值?

sql - 使用 PIVOT 命令在 SQL SERVER 中将行转换为列(将 NULL 值替换为 0 并显示所有值的总和)

c# - 如何从数据库读取图形图像并将其作为文件粘贴到剪贴板?

c# - 实体数据模型从不同的数据库获取数据

c# - Windows 8 效果

c# - 启动 Bing map 时应使用哪个 API

c# - 类型的对象无法应用于期望类型为system.windows.data.ivalueconverter的属性

c# - 需要帮助理解 C# 中的事件

sql - 避免在 SQL-Server 中自动创建 XML 标签

c# - 使用子生命周期时对象不会被释放