그것은 DefiningQuery을 가지고 있기 때문에 EntitySet '세션'을 업데이트 할 수 없습니다없고 요소가 지원 현재 작업에 요소에 존재합니다.
데이터베이스 테이블에서 행을 삭제하려고 시도하는 중. 존재하는 행에 SaveChanges()
을 호출 할 때 예외가 나타납니다. 아래 코드는 다음과 같습니다.
public static Func<DC21GPDEntities, string, IQueryable<Session>> compiledDeleteQuery =
CompiledQuery.Compile((DC21GPDEntities ctx, string userId) =>
(from rows in ctx.Sessions
where rows.User_ID == userId
select rows));
[HttpPost]
public ActionResult Index(string searchItem)
{
try
{
string userId =searchItem.Trim();
string successMessage
= "The session for User ID: " + userId + " has been cleared in Fascor.";
dc21gpdContext.CommandTimeout = 180;
Models.Session session = Queries.compiledDeleteQuery(dc21gpdContext, userId).FirstOrDefault();
if (session == null)
successMessage = "Session for User ID: " + userId + " does noe exist";
else
{
dc21gpdContext.DeleteObject(session);
dc21gpdContext.SaveChanges();
}
ViewData["SuccessMessage"] = successMessage;
return View();
}
catch (Exception ex)
{
ViewData["SuccessMessage"] = "Failed to clear session";
return View();
}
}
세션 테이블에 기본 키가 있습니까? –
@Klaus Byskov Hoffmann : 안타깝게도 기본 키가 없습니다. – 14578446