Entity framework 如何在实体框架中创建一个新的主键,首先是数据库?

Entity framework 如何在实体框架中创建一个新的主键,首先是数据库?,entity-framework,Entity Framework,我从下面的代码中得到一个运行时异常。我认为这并不是在创建主键(CustomerID和int)。我使用了该向导,多年前我就有过使用ADO.NET的经验,但这是我第一个使用Entity Framework 6.0和DbContext的项目。我使用“database first”生成了EDMX文件,因此存在一个实际的数据库。我不认为任何其他表与此表有强制的外键关联,因此我认为(但不确定)此运行时错误是由于未能创建新的主键造成的。这不是一个很简单的问题,也不是一个很难回答的问题,所以我稍后会检查 保罗

我从下面的代码中得到一个运行时异常。我认为这并不是在创建主键(CustomerID和int)。我使用了该向导,多年前我就有过使用ADO.NET的经验,但这是我第一个使用Entity Framework 6.0和DbContext的项目。我使用“database first”生成了EDMX文件,因此存在一个实际的数据库。我不认为任何其他表与此表有强制的外键关联,因此我认为(但不确定)此运行时错误是由于未能创建新的主键造成的。这不是一个很简单的问题,也不是一个很难回答的问题,所以我稍后会检查

保罗


我添加了以下代码,它告诉我新客户缺少一个复杂的非空字段(地址)。一旦我添加myCustomerREALLYNEW.Address=“123 Street”;然后可以添加新的记录/对象

以下是我为捕获运行时异常而添加的代码,该异常是我从网上获得的:

catch (DbEntityValidationException ex1)
{
Debug.WriteLine("!" + ex1.Message);
List<string> errorMessages = new List<string>();
foreach (DbEntityValidationResult validationResult in ex1.EntityValidationErrors)
{
string entityName = validationResult.Entry.Entity.GetType().Name;
foreach (DbValidationError error in validationResult.ValidationErrors)
{
errorMessages.Add(entityName + "." + error.PropertyName + ":" + errorMessages);
}
}

foreach (string s in errorMessages)
{
Debug.WriteLine(s);
}

}
catch(DbEntityValidationException ex1)
{
Debug.WriteLine(“!”+ex1.Message);
List errorMessages=新列表();
foreach(ex1中的DbEntityValidationResult validationResult.EntityValidationErrors)
{
字符串entityName=validationResult.Entry.Entity.GetType().Name;
foreach(validationResult.ValidationErrors中的DbValidationError错误)
{
errorMessages.Add(entityName+“+error.PropertyName+”:“+errorMessages);
}
}
foreach(errorMessages中的字符串s)
{
Debug.WriteLine(s);
}
}

创建客户时,您会收到哪些例外情况?发布异常详细信息。谢谢Mohsen Esmailpour。你赢了奖金。事实上,有一个必需的非空字段需要填充。一旦我这样做了,问题就消失了。如果主持人没有删除这个问题,我将编辑我的问题。
catch (DbEntityValidationException ex1)
{
Debug.WriteLine("!" + ex1.Message);
List<string> errorMessages = new List<string>();
foreach (DbEntityValidationResult validationResult in ex1.EntityValidationErrors)
{
string entityName = validationResult.Entry.Entity.GetType().Name;
foreach (DbValidationError error in validationResult.ValidationErrors)
{
errorMessages.Add(entityName + "." + error.PropertyName + ":" + errorMessages);
}
}

foreach (string s in errorMessages)
{
Debug.WriteLine(s);
}

}