エンティティを削除しようとすると異常なエラーが発生します。エラーエンティティオブジェクトを削除するときに「値はnullではありませんパラメータ名:エンティティ」
public class EmployeesController : Controller
{
readonly IEmployeesRepository _employeesRepository;
public EmployeesController()
{
_employeesRepository = new SqlEmployeesRepository();
}
public RedirectToRouteResult Delete(int id)
{
var employee = _employeesRepository.GetEmployee(id);
_employeesRepository.DeleteEmployee(employee);
TempData["message"] = employee.Name + " was deleted";
return RedirectToAction("Index");
}
}
とリポジトリコード:
public class SqlEmployeesRepository : IEmployeesRepository
{
private readonly MyDBEntities _entities;
public SqlAgencyTypesRepository()
{
_entities = new MyDBEntities();
}
public IQueryable<Employee> Employees
{
get { return _entities.Employees.AsQueryable(); }
}
public Employee GetEmployee(int id)
{
return Employees.FirstOrDefault(e => e.EmployeeID == id);
}
public void DeleteEmployee(Employee employee)
{
_entities.Employees.Context.DeleteObject(employee);
_entities.Employees.Context.SaveChanges();
}
}
私はEntity Frameworkの4を使用しています、C#とASP.NET MVC 3
は、ここに私のコントローラとエンティティオブジェクトを削除する機能です
カップルの奇妙なもの:
- アイテムが削除されます。
DeleteObject
行でエラーが発生しますが、それでも削除されています。 これはローカルマシンでは発生しません。本番環境でのみ発生します。 2つの唯一の違いは、接続文字列です。誰もがここで何が起こっているか知っている
<!-- Local conn string --> <!--<add name="MyDBEntities" connectionString="metadata=res://*/Entities.MyDB.csdl|res://*/Entities.MyDB.ssdl|res://*/Entities.MyDB.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyDB.mdf;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />--> <!-- Production conn string --> <add name="MyDBEntities" connectionString="metadata=res://*/Entities.MyDB.csdl|res://*/Entities.MyDB.ssdl|res://*/Entities.MyDB.msl;provider=System.Data.SqlClient;provider connection string="Server=mysite.com;Database=MyDB;User ID=***;Password=***;Trusted_Connection=True;Integrated Security=False;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
?
プロダクションとローカルインスタンスでテーブル制約も同じですか? – aL3891
はい、両方のデータベースがまったく同じです。 – Steven