Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.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#_Asp.net_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# 如何正确地进行快速加载?

C# 如何正确地进行快速加载?,c#,asp.net,asp.net-mvc,entity-framework,C#,Asp.net,Asp.net Mvc,Entity Framework,我有一个asp net mvc项目。 我的情况:两个表有一个相似的列,我需要显示第一个表,并将第一个表中的一个值更改为第二个表中的连接值。 我试图通过EF加载,但我有一个错误 SqlException: invalid column name "ReqLpu_Id". 我知道我可以将join select设置为一个模型,但我不理解EF。类似的列是ReqLpu模型中的STATUS,以及ReqStatusMo模型中的Id 主要型号: public class ReqLpu {

我有一个asp net mvc项目。
我的情况:两个表有一个相似的列,我需要显示第一个表,并将第一个表中的一个值更改为第二个表中的连接值。
我试图通过EF加载,但我有一个错误

SqlException: invalid column name "ReqLpu_Id".
我知道我可以将join select设置为一个模型,但我不理解EF。类似的列是ReqLpu模型中的
STATUS
,以及ReqStatusMo模型中的
Id

主要型号:

public class ReqLpu
    {
        [Key]
        public int IdLpu { get; set; }
        public string COD { get; set; }
        public string M_NAMES { get; set; }
        public string TEL { get; set; }
        public string FAX { get; set; }
        public string E_MAIL { get; set; }
        public int? STATUS { get; set; }

        public virtual ICollection<ReqStatusMO> ReqStatusMO { get; set; }

    }
控制器:

   lpuv = wk.ReqLpus.Include(p => p.ReqStatusMO).ToList();
 return View(lpuv);
视图:

@model IEnumerable
...
@DisplayNameFor(model=>model.M_名称)
...
@foreach(模型中的var项目)
{
@Html.HiddenFor(modeleItem=>item.Id)
@DisplayFor(modeleItem=>item.M_名称)
...
@DisplayFor(modelItem=>item.ReqStatusMO.Select(x=>x.Name))
...
模型活页夹:

 public class WorksContext :DbContext
    {
        public DbSet<ReqLpu> ReqLpus { get; set; }
        public DbSet<ReqStatusMO> ReqStatusMOs { get; set; }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<ReqLpu>().ToTable("ReqLpu");
            modelBuilder.Entity<ReqStatusMO>().ToTable("ReqStatusMO");
            modelBuilder.Entity<ReqStatusMO>().HasRequired(x => x.ReqLpu).WithMany(x => x.ReqStatusMO).HasForeignKey(x => x.STATUS);
        }
公共类工作上下文:DbContext
{
公共DbSet REQULPUS{get;set;}
公共DbSet ReqStatusMOs{get;set;}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Entity().ToTable(“ReqLpu”);
modelBuilder.Entity().ToTable(“ReqStatusMO”);
modelBuilder.Entity().HasRequired(x=>x.ReqLpu)。with many(x=>x.ReqStatusMO)。HasForeignKey(x=>x.STATUS);
}

ReqLpu\u Id
ReqStatusMO
数据库表中FK列的EF常规名称。您的实际数据库表列如何命名?@IvanStoev STATUS在ReqLpu中,Id在ReqStatusMO中。这不是一个包含问题,您的FK映射完全是错误的。请使用modelBuilder.Entity().HasRequired(x=>x.ReqLpu)。有许多(x=>x.ReqStatusMO).HasForeignKey(x=>x.STATUS);用于调整FK映射。@DevilSuichiro此“ICollection”中有错误,它不包含“ReqStatusMO”的定义,并且找不到接受“ICollection”类型的第一个参数的扩展方法“ReqStatusMO”(是否缺少using指令或程序集引用?)您的OnModelCreating()方法现在看起来像什么?
@model IEnumerable<LpuList.Models.ReqLpu>
...
    <table class="table">
            <tr>
                <th>
                    @Html.DisplayNameFor(model => model.M_NAMES)
                </th>
               ...
            </tr>

            @foreach (var item in Model)
            {
            <tr>
                @Html.HiddenFor(modelItem => item.Id)
                <td>
                    @Html.DisplayFor(modelItem => item.M_NAMES)
                </td>
              ...
                <td>
                    @Html.DisplayFor(modelItem => item.ReqStatusMO.Select(x=>x.Name))
                </td>
                <td>
    ...
 public class WorksContext :DbContext
    {
        public DbSet<ReqLpu> ReqLpus { get; set; }
        public DbSet<ReqStatusMO> ReqStatusMOs { get; set; }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<ReqLpu>().ToTable("ReqLpu");
            modelBuilder.Entity<ReqStatusMO>().ToTable("ReqStatusMO");
            modelBuilder.Entity<ReqStatusMO>().HasRequired(x => x.ReqLpu).WithMany(x => x.ReqStatusMO).HasForeignKey(x => x.STATUS);
        }