SqlException:在C#(VISUAL STUDIO)和sql server中构建网站时,对象名称无效错误



WebDev新手,尝试建立一个网站,农民可以在网上商店订购药品。

在一个单一的解决方案中,有两个项目是Medicine.Model(数据库在这里从sqlserver调用(和Medicine.WEB(上面的项目在这里添加为项目参考(

3型号

Farmer

using System;
using System.Collections.Generic;
#nullable disable
namespace Medicine.Model.Models
{
public partial class Farmer
{
public Farmer()
{
Orders = new HashSet<Order>();
}
public string FarmerName { get; set; }
public string Location { get; set; }
public int Quantity { get; set; }
public int FarmerId { get; set; }
public virtual ICollection<Order> Orders { get; set; }
}
}

存储

public partial class Store
{
public Store()
{
Orders = new HashSet<Order>();
}
public int StoreId { get; set; }
public string StoreName { get; set; }
public string StoreLocation { get; set; }
public virtual ICollection<Order> Orders { get; set; }
}

订单(存储订单详细信息并将以上链接到表格(

public partial class Order
{
public int FarmerId { get; set; }
public int StoreId { get; set; }
public string Status { get; set; }
public string DateOfOrder { get; set; }
public int OrderId { get; set; }
public virtual Farmer Farmer { get; set; }
public virtual Store Store { get; set; }
}

对共享布局视图进行了更改,以添加3个控制器。

分别制作3个控制器

这是共享布局代码

<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Farmers" asp-action="Index">Farmers</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Orders" asp-action="Index">Orders</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Store" asp-action="Index">Stores</a>
</li>

好的,所以问题是当我点击主页时,网站运行得很好,但当我在网站中点击farmer时,它会显示以下错误

处理请求时发生未处理的异常。SqlException:对象名称"Farmer"无效。Microsoft.Data.SqlClient.SqlCommand+<gt;c.b_169_0(任务结果(

//错误还在此处显示红线

FarmersController.cs 中的Medicine.WEB.Controllers.FarmersCoontroller.Index((

return View(await _context.Farmers.ToListAsync());

所以我在这里添加整个Farmer控制器,

FarmersController

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.EntityFrameworkCore;
using Medicine.Model.Models;
namespace Medicine.WEB.Controllers
{
public class FarmersController : Controller
{
private readonly MedicinesDBContext _context;
public FarmersController(MedicinesDBContext context)
{
_context = context;
}
// GET: Farmers
public async Task<IActionResult> Index()
{
return View(await _context.Farmers.ToListAsync());
}
// GET: Farmers/Details/5
public async Task<IActionResult> Details(int? id)
{
if (id == null)
{
return NotFound();
}
var farmer = await _context.Farmers
.FirstOrDefaultAsync(m => m.FarmerId == id);
if (farmer == null)
{
return NotFound();
}
return View(farmer);
}
// GET: Farmers/Create
public IActionResult Create()
{
return View();
}
// POST: Farmers/Create
// To protect from overposting attacks, enable the specific properties you want to bind to.
// For more details, see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("FarmerName,Location,Quantity,FarmerId")] Farmer farmer)
{
if (ModelState.IsValid)
{
_context.Add(farmer);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(farmer);
}
// GET: Farmers/Edit/5
public async Task<IActionResult> Edit(int? id)
{
if (id == null)
{
return NotFound();
}
var farmer = await _context.Farmers.FindAsync(id);
if (farmer == null)
{
return NotFound();
}
return View(farmer);
}
// POST: Farmers/Edit/5
// To protect from overposting attacks, enable the specific properties you want to bind to.
// For more details, see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(int id, [Bind("FarmerName,Location,Quantity,FarmerId")] Farmer farmer)
{
if (id != farmer.FarmerId)
{
return NotFound();
}
if (ModelState.IsValid)
{
try
{
_context.Update(farmer);
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!FarmerExists(farmer.FarmerId))
{
return NotFound();
}
else
{
throw;
}
}
return RedirectToAction(nameof(Index));
}
return View(farmer);
}
// GET: Farmers/Delete/5
public async Task<IActionResult> Delete(int? id)
{
if (id == null)
{
return NotFound();
}
var farmer = await _context.Farmers
.FirstOrDefaultAsync(m => m.FarmerId == id);
if (farmer == null)
{
return NotFound();
}
return View(farmer);
}
// POST: Farmers/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(int id)
{
var farmer = await _context.Farmers.FindAsync(id);
_context.Farmers.Remove(farmer);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
private bool FarmerExists(int id)
{
return _context.Farmers.Any(e => e.FarmerId == id);
}
}
}

有人能告诉我我的错误在哪里以及如何纠正吗?

明白了,看到模型是在数据库(sql server(的代码中制作的,所以NuGet包控制台没有错误,错误是在我们在appsetting.json中输入的连接字符串中,感谢所有

最新更新