gpt4 book ai didi

c# - Entity Framework 等效于ADO.Net的DataRow.HasErrors?

转载 作者:行者123 更新时间:2023-12-03 08:35:34 26 4
gpt4 key购买 nike

如果Entity Framework具有等效于DataRow.HasErrors的ADO.Net,那就太好了。

我遇到服务器在保存时返回错误的情况(例如“二进制/字符串数据将被截断,不可为空的字段设置为null等),并且无法分辨哪个实体导致了问题。” .Net这更容易,因为在告诉DataAdapter保存更改之后,我可以遍历所有数据行并仅检查具有HasErrors的数据行。虽然这不会查明该字段,但至少会告诉我是哪一行导致了问题。

我似乎找不到与此等效的实体。谁知道有没有?

最佳答案

在两种情况下,您都描述当您尝试保存时会抛出DbUpdateException

此异常具有一个名为Entries的属性。您可以使用此属性来获取导致失败的实体。每个实体都是一个DbEntityEntry对象,并且具有一个属性,该属性具有真实的entity并加载有关错误原因等的更多信息。

因此,在您描述的情况下,仅捕获异常并查看Entries集合以找出问题的根本原因,如下所示:

try
{
c.SaveChanges();
}
catch (DbUpdateException ex)
{
IEnumerable<object> myBadEntities =
ex.Entries.Select(e => e.Entity);
}

关于c# - Entity Framework 等效于ADO.Net的DataRow.HasErrors?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9940666/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com