两个表两个关系ASP MVC

本文关键字:两个 MVC ASP 关系 | 更新日期: 2023-09-27 18:07:44

我今天早上有这个疑问,但没有得到答案。我希望有人能帮助我。

我有两个表(T1 &T2)

T1 
-> Id (P)
-> InstanceId (U)
-> ObjectId (U)
-> Name
T2 
-> Id (P)
-> InstanceId (F) (Foreign key for T1.InstanceId)
-> ObjectId (F) (Foreign key for T1.InstanceId)
-> Grade

我需要使用两个关系连接这两个表,并使用linq显示两个表的详细信息。

我已经使用了这个linq查询,但不知道如何返回两个表,如果我选择t1和t2从这个查询,那么ObjectId引用不使用(即t12)?

我该如何解决这个问题?我需要使用这两个关系,并希望获得这两个表的值。

LINQ:

var result = from t1 in db.T1 
             join t2 in db.T2 on t1.InstanceId equals t2.InstanceId 
             join t12 in db.T2 on t2.ObjectId equals t12.ObjectId 
             select t1;

两个表两个关系ASP MVC

您应该使用new关键字。

加入条款

var result =
        from t1 in db.T1
        join t2 in db.T2 on new { ObjectId : t1.ObjectId , InstanceId = t1.InstanceId} equals
                            new { ObjectId : t2.ObjectId , InstanceId = t2.InstanceId}
        select new
        {
            t1,
            t2
        }

尝试以下操作:

   var x = context.T1.Where(t => t.Id == context.T2.InstanceId)
           .Select(x => new {
              t,
              t.Instance //use the related entity here)
            }).ToList();

'x'是一个可以在函数中使用的匿名对象。t是T1的变量,它和T2有关,在你们的课上,我期望从T2到T1有一个父变量。这样你就可以在你的匿名对象中使用它了。