You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 7 MVC CS1061错误:找不到AddDate/AddBy定义求助

CS1061错误排查:'Eng_Designation_Name' 不包含'AddDate'/'AddBy'定义

我在添加新表到模型后运行项目,出现以下CS1061错误:

Error CS1061

'Eng_Designation_Name' does not contain a definition for 'AddDate' and no accessible extension method 'AddDate' accepting a first argument of type 'Eng_Designation_Name' could be found (are you missing a using directive or an assembly reference?) TEEPOEEApp C:\Users\londono-ecr\source\repos\TEEPOEEApp\TEEPOEEApp\Controllers\Eng_Designation_NameController.cs 65 Active

Error CS1061

'Eng_Designation_Name' does not contain a definition for 'AddBy' and no accessible extension method 'AddBy' accepting a first argument of type 'Eng_Designation_Name' could be found (are you missing a using directive or an assembly reference?) TEEPOEEApp C:\Users\londono-ecr\source\repos\TEEPOEEApp\TEEPOEEApp\Controllers\Eng_Designation_NameController.cs 66 Active

相关代码

DbContext代码

public virtual DbSet<Eng_Designation_Name> Eng_Designation_Name { get; set; }

modelBuilder.Entity<Eng_Designation_Name>(entity =>
{
    entity.HasKey(e => e.Designation_Names_Id);

    entity.ToTable("Eng_Designation_Name");

    entity.Property(e => e.Designation_Names_Id)
          .HasColumnName("Designation_Names_Id");

    entity.Property(e => e.Designation_Names)
          .HasMaxLength(250)
          .IsUnicode(false)
          .HasColumnName("Designation_Names");

    entity.Property(e => e.AddDate)
          .HasColumnType("datetime")
          .HasDefaultValueSql("(getdate())");

   entity.Property(e => e.AddBy)
         .HasMaxLength(250)
         .IsUnicode(false)
         .HasColumnName("AddBy");

模型类代码

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace TEEPOEEApp.Models
{
    public partial class Eng_Designation_Name
    {
        public Eng_Designation_Name()
        {
            Eng_DownTimeDay_Designation_Name = new HashSet<Eng_DownTimeDay_Designation_Name>();
        }

        [Key]
        public int Designation_Names_Id { get; set; }

        [StringLength(500)]
        public string Designation_Names { get; set; }

        [Column(TypeName = "datetime")]
        public DateTime AddDate { get; set; }

        [StringLength(250)]
        public string AddBy { get; set; }

        [InverseProperty("Designation_Names")]
        public virtual ICollection<Eng_DownTimeDay_Designation_Name> Eng_DownTimeDay_Designation_Name { get; set; }
    }
}

控制器代码

using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using TEEPOEEApp.Models;

namespace TEEPOEEApp.Controllers
{
    public class Eng_Designation_Name : Controller
    {
        private readonly TEEPOEEAppDBContext _context;

        public Eng_Designation_Name(TEEPOEEAppDBContext context)
        {
            _context = context;
        }

        // GET: Eng_Designation_Name
        public async Task<IActionResult> Index()
        {
            return View(await _context.Eng_Designation_Name.ToListAsync());
        }

        // GET: Eng_Designation_Name/Details/5
        public async Task<IActionResult> Details(int? id)
        {
            if (id == null || _context.Eng_Designation_Name == null)
            {
                return NotFound();
            }

            var eng_Designation_Name = await _context.Eng_Designation_Name
                .FirstOrDefaultAsync(m => m.Designation_Names_Id == id);

            if (eng_Designation_Name == null)
            {
                return NotFound();
            }

            return View(eng_Designation_Name);
        }

        // GET: Eng_Designation_Name/Create
        public IActionResult Create()
        {
            return View();
        }

        // POST: Eng_Designation_Name/Create
        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> Create([Bind("Designation_Names_Id,Designation_Names,AddBy,AddDate")] Eng_Designation_Name eng_Designation_Name)
        {
            if (ModelState.IsValid)
            {
                eng_Designation_Name.AddDate = DateTime.Now;
                eng_Designation_Name.AddBy = User.Identity.Name;

                _context.Add(eng_Designation_Name);
                await _context.SaveChangesAsync();
                return RedirectToAction(nameof(Index));
            }

            return View(eng_Designation_Name);
        }

        // GET: Eng_Designation_Name/Edit/5
        public async Task<IActionResult> Edit(int? id)
        {
            if (id == null || _context.Eng_Designation_Name == null)
            {
                return NotFound();
            }

            var eng_Designation_Name = await _context.Eng_Designation_Name.FindAsync(id);

            if (eng_Designation_Name == null)
            {
                return NotFound();
            }

            return View(eng_Designation_Name);
        }

        // POST: Eng_Designation_Name/Edit/5
        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> Edit(int id, [Bind("Designation_Names_Id,Designation_Names,AddBy,AddDate")] Eng_Designation_Name eng_Designation_Name)
        {
            if (id != eng_Designation_Name.Designation_Names_Id)
            {
                return NotFound();
            }

            if (ModelState.IsValid)
            {
                try
                {
                    eng_Designation_Name.AddDate = DateTime.Now;
                    eng_Designation_Name.AddBy = User.Identity.Name + "   Edit";

                    _context.Update(eng_Designation_Name);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!Eng_Designation_NameExists(eng_Designation_Name.Designation_Names_Id))
                    {
                        return NotFound();
                    }
                    else
                    {
                        throw;
                    }
                }

                return RedirectToAction(nameof(Index));
            }

            return View(eng_Designation_Name);
        }

        // GET: Eng_Designation_Name/Delete/5
        public async Task<IActionResult> Delete(int? id)
        {
            if (id == null || _context.Eng_Designation_Name == null)
            {
                return NotFound();
            }

            var eng_Designation_Name = await _context.Eng_Designation_Name
                .FirstOrDefaultAsync(m => m.Designation_Names_Id == id);

            if (eng_Designation_Name == null)
            {
                return NotFound();
            }

            return View(eng_Designation_Name);
        }

        // POST: Eng_Designation_Name/Delete/5
        [HttpPost, ActionName("Delete")]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> DeleteConfirmed(int id)
        {
            if (_context.Eng_Designation_Name == null)
            {
                return Problem("Entity set 'TEEPOEEAppDBContext.Eng_Designation_Names'  is null.");
            }

            var eng_Designation_Name = await _context.Eng_Designation_Name.FindAsync(id);

            if (eng_Designation_Name != null)
            {
                _context.Eng_Designation_Name.Remove(eng_Designation_Name);
            }

            await _context.SaveChangesAsync();
            return RedirectToAction(nameof(Index));
        }

        private bool Eng_Designation_NameExists(int id)
        {
            return _context.Eng_Designation_Name.Any(e => e.Designation_Names_Id == id);
        }

        // POST: Eng_Designation_Name/Create
        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> Create([Bind("Designation_Names_Id,Designation_Names,AddBy,AddDate")] Eng_Designation_Name eng_Designation_Name)
        {
            if (ModelState.IsValid)
            {
                eng_Designation_Name.AddDate = DateTime.Now;
                eng_Designation_Name.AddBy = User.Identity.Name;

                _context.Add(eng_Designation_Name);

                await _context.SaveChangesAsync();

                return RedirectToAction(nameof(Index));
            }

            return View(eng_Designation_Name);
        }
    }
}

错误原因及解决办法

1. 控制器与模型类名冲突

你的控制器类名和模型类名完全一致(都是Eng_Designation_Name),编译器会优先将代码中的Eng_Designation_Name识别为控制器类型,而非模型类型,导致无法找到模型的AddDate和AddBy属性。

解决: 修改控制器类名,遵循ASP.NET Core规范,给控制器类添加Controller后缀:

namespace TEEPOEEApp.Controllers
{
    public class Eng_Designation_NameController : Controller
    {
        // 原有代码保持不变
    }
}

2. 重复定义Create方法

控制器中重复实现了两个POST类型的Create方法,这不仅会导致路由冲突,还可能干扰编译器的类型解析逻辑。

解决: 删除其中一个重复的Create方法,仅保留一个即可。

3. 额外排查步骤

  • 确认模型命名空间TEEPOEEApp.Models已在控制器中正确引用(你的代码中已添加using TEEPOEEApp.Models;,此部分无问题);
  • 清理项目缓存:删除项目目录下的bin和obj文件夹,然后执行清理解决方案和重新生成解决方案;
  • 检查DbContext和模型类的属性拼写,确保AddDate、AddBy等属性名完全一致。

内容的提问来源于stack exchange,提问作者Roberto Londono

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 21:57:03