Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.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
Javascript 从dbo调用FirstName。从外键调用Employee_Javascript_C#_Sql_Asp.net Mvc - Fatal编程技术网

Javascript 从dbo调用FirstName。从外键调用Employee

Javascript 从dbo调用FirstName。从外键调用Employee,javascript,c#,sql,asp.net-mvc,Javascript,C#,Sql,Asp.net Mvc,我想使用table Transaction()中的外键从我的表Employee调用FirstName,并在部分视图的dataTable上查看它。这是我的简短DB图: 这是我如何调用datatable的: 索引视图 <div class="card-body"> <div class="table-responsive"> <div id="caTable"></div> </div&g

我想使用table Transaction()中的外键从我的表Employee调用FirstName,并在部分视图的dataTable上查看它。这是我的简短DB图:

这是我如何调用datatable的: 索引视图

<div class="card-body">
        <div class="table-responsive">
            <div id="caTable"></div>
        </div>
</div>
控制器

[HttpGet]
public ActionResult GetOpenCATransaction()
{
    using (var context = new dbavlincacctgEntities())
    {
        catransList = context.CATransactions.ToList();                
    }
    return PartialView("_CATransaction", catransList);
}
局部视图

<table class="table table-bordered" id="dataTable" style="width:100%" cellspacing="0">
    <thead>
        <tr>
            <th>ID</th>
            <th>CA Number</th>
            <th>Requestor</th>
            <th>Payee</th>
            <th>Total CA Amount</th>
            <th>Status</th>
            <th>Action</th>
        </tr>
    </thead>
    <tbody>
        @if (Model != null)
        {
            foreach (var item in Model)
            {
                <tr>
                    <td>@item.TransID</td>
                    <td>@item.TransactionNumber</td>
                    <td>@item.RequestorID</td>
                    <td>@item.Payee</td>
                    <td>@item.TotalAmount</td>
                    <td>@item.Status</td>
                    <td><button class="btn btn-primary">View</button> <button class="btn btn-danger">Delete</button></td>
                </tr>
            }
        }
    </tbody>
</table>

身份证件
CA编号
请求者
受款人
总钙量
地位
行动
@如果(型号!=null)
{
foreach(模型中的var项目)
{
@项目1.TransID
@item.TransactionNumber
@item.RequestorID
@项目.收款人
@项目.总金额
@项目.状况
视图删除
}
}
这段代码显示整数RequestorID(显然是因为我从模型中调用它)。我不知道如何使用FK显示其他模型的名字。如果有帮助的话,我用了EF6。谢谢

  • 您需要更改模型,以包含员工-声明ViewModel中的字段
  • 根据实体的设置方式,您可以直接(外键关系)或通过获取相关实体并在LINQ中执行Join yourself来间接地从相关实体查询和提取数据
  • 特别是查看显式加载部分,根据实体设置,您可以使用
    收集
    方法或
    引用
    方法

  • 最后,如果实体类中没有支持,您也可以加入数据

  • 一旦数据包含员工信息,显示它就相对简单,而且看起来您已经知道如何操作了

  • 您需要更改模型,以包含员工-声明ViewModel中的字段
  • 根据实体的设置方式,您可以直接(外键关系)或通过获取相关实体并在LINQ中执行Join yourself来间接地从相关实体查询和提取数据
  • 特别是查看显式加载部分,根据实体设置,您可以使用
    收集
    方法或
    引用
    方法

  • 最后,如果实体类中没有支持,您也可以加入数据

  • 一旦数据包含员工信息,显示它就相对简单,而且看起来您已经知道如何操作了


  • 您可以直接使用LINQ联接来执行此操作

    var firstName=(from trans in context.CATransactions join req in context.Requestor on trans.RequestorID equals req.RequestorId join emp in context.employees on req.EmpID equals emp.EmpId Select new {emp.FirstName} ).ToList();
    
    或者,您可以按如下方式更改模型:

    public class Employee
    {
      public <DataType> EmpID {get; set;}
      public <DataType> FirstName {get; set;}
      public <DataType> LastName {get; set;}
    }
    public class Requestor
    {
      public <DataType> RequestorID {get; set;}
      public Employee EmpID {get; set;}
    }
    public class Transaction
    {
      public <DataType> TransID {get; set;}
      public Requestor  RequestorID {get; set;}
      public <DataType> Amount {get; set;}
      public <DataType> TransType {get; set;}
    
    }
    

    您可以直接使用LINQ联接来执行此操作

    var firstName=(from trans in context.CATransactions join req in context.Requestor on trans.RequestorID equals req.RequestorId join emp in context.employees on req.EmpID equals emp.EmpId Select new {emp.FirstName} ).ToList();
    
    或者,您可以按如下方式更改模型:

    public class Employee
    {
      public <DataType> EmpID {get; set;}
      public <DataType> FirstName {get; set;}
      public <DataType> LastName {get; set;}
    }
    public class Requestor
    {
      public <DataType> RequestorID {get; set;}
      public Employee EmpID {get; set;}
    }
    public class Transaction
    {
      public <DataType> TransID {get; set;}
      public Requestor  RequestorID {get; set;}
      public <DataType> Amount {get; set;}
      public <DataType> TransType {get; set;}
    
    }
    

    好的。我现在拿到了。谢谢科维德·普罗希特给我的建议。这一问题由

    public partial class Employee
    {
      public <DataType> EmpID {get; set;}
      public <DataType> FirstName {get; set;}
      public <DataType> LastName {get; set;}
    }
    public partial class Requestor
    {
      public <DataType> RequestorID {get; set;}
      public <DataType> EmpID {get; set;}
    
      public virtual Employee Employee {get; set;}
    }
    public partial class Transaction
    {
      public <DataType> TransID {get; set;}
      public <DataType>  RequestorID {get; set;}
      public <DataType> Amount {get; set;}
      public <DataType> TransType {get; set;}
    
      public virtual Requestor Requestor{get; set;}
    }
    
    局部视图:

    <tbody>
            @if (Model != null)
            {
                foreach (var item in Model)
                {
                    <tr>
                        <td>@item.TransID</td>
                        <td>@item.TransactionNumber</td>
                        <td>@item.Requestor.Employee.Firstname</td>
                        <td>@item.Payee</td>
                        <td>@item.TotalAmount</td>
                        <td>@item.Status</td>
                        <td><button class="btn btn-primary">View</button> <button class="btn btn-danger">Delete</button></td>
                    </tr>
                }
            }
    </tbody>
    
    
    @如果(型号!=null)
    {
    foreach(模型中的var项目)
    {
    @项目1.TransID
    @item.TransactionNumber
    @item.Requestor.Employee.Firstname
    @项目.收款人
    @项目.总金额
    @项目.状况
    视图删除
    }
    }
    
    好的。我现在拿到了。谢谢科维德·普罗希特给我的建议。这一问题由

    public partial class Employee
    {
      public <DataType> EmpID {get; set;}
      public <DataType> FirstName {get; set;}
      public <DataType> LastName {get; set;}
    }
    public partial class Requestor
    {
      public <DataType> RequestorID {get; set;}
      public <DataType> EmpID {get; set;}
    
      public virtual Employee Employee {get; set;}
    }
    public partial class Transaction
    {
      public <DataType> TransID {get; set;}
      public <DataType>  RequestorID {get; set;}
      public <DataType> Amount {get; set;}
      public <DataType> TransType {get; set;}
    
      public virtual Requestor Requestor{get; set;}
    }
    
    局部视图:

    <tbody>
            @if (Model != null)
            {
                foreach (var item in Model)
                {
                    <tr>
                        <td>@item.TransID</td>
                        <td>@item.TransactionNumber</td>
                        <td>@item.Requestor.Employee.Firstname</td>
                        <td>@item.Payee</td>
                        <td>@item.TotalAmount</td>
                        <td>@item.Status</td>
                        <td><button class="btn btn-primary">View</button> <button class="btn btn-danger">Delete</button></td>
                    </tr>
                }
            }
    </tbody>
    
    
    @如果(型号!=null)
    {
    foreach(模型中的var项目)
    {
    @项目1.TransID
    @item.TransactionNumber
    @item.Requestor.Employee.Firstname
    @项目.收款人
    @项目.总金额
    @项目.状况
    视图删除
    }
    }
    
    请支持我,投票表决我的答案。我非常感谢你的努力。

    请支持我,投票表决我的答案。我非常感谢您的努力。

    向我们展示您实体的定义。向我们展示您实体的定义。请通过投票支持我的回答。我非常感谢你的努力。请支持我,把我的答案投上去。我非常感谢你的努力。