问题描述
我即将与UUID创建申请表作为其唯一键(不主键)
我得到了错误:
Connection String To DB:
connectionString="Data Source=(localdb)\v11.0;
Initial Catalog=FormsContext;
Integrated Security=True;
MultipleActiveResultSets=True;
AttachDbFilename=|DataDirectory|Forms.mdf"
providerName="System.Data.SqlClient"
FormsContext.cs:
namespace ApplicationForm.Models
{
public class FormsContext : DbContext
{
public FormsContext() : base("name=FormsContext")
{
}
public System.Data.Entity.DbSet<ApplicationForm.Models.Form> Forms { get; set; }
...
The database is like this:
FormsContext->Forms->{id,uuid,first,last...}
I am not so sure what happened this time. Would anyone help me to go through this?
Edit/Resolution
I wasn't sure how to check Inner Exception and I did some research on this. So when I read the error message in the Inner Exception, I could solve my problem.
I found out what the bug was. The query field is 'firstname' but my table column name is 'first'. They did not match. Once I changed the DB column name, it was working again.
One must be diligent to keep each in sync if the database is always in flux.
Why?
EF is simply mappings, whether to tables or to sprocs and any subtle change to column names or foreign key constraints can have ripple effects.
Those effects can create obvious, like you found, errors or non obvious logical errors which can provide working (compiled) software with subtle logic bugs. I have seen the logic bugs by experience and they do happen.
So always be wary to keep the EF mappings in sync.
I answered to a different EF question but in a similar vein.
I had run into a situation where in EF a mapped stored proc at runtime failed because an internal change in the stored proc saw that a sql cast
had stripped out a column name from the result, and EF (mapped before the changed) failed. I have a screen shot in my answer which shows that EF/db changes can have a deleterious effect:
这篇关于System.Data.Entity.Core.EntityCommandExecutionException发生在MVC应用程序中使用EF的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!