Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 删除包含子项的记录_C#_Entity Framework_Linq - Fatal编程技术网

C# 删除包含子项的记录

C# 删除包含子项的记录,c#,entity-framework,linq,C#,Entity Framework,Linq,它给了我这个错误 EntityFramework.SqlServer.dll中发生类型为“System.NotSupportedException”的未处理异常 其他信息:LINQ to Entities不识别方法“EF\u Examples\u 02.Person LastOrDefault[Person] 我有两张表(个人,收入),每个人可以有n份收入。 两个表之间有关系。这里的问题是,LastOrDefault没有转换为SQL语句 基本上你有两个选择: 首先获取所有数据: /

它给了我这个错误

EntityFramework.SqlServer.dll中发生类型为“System.NotSupportedException”的未处理异常

其他信息:LINQ to Entities不识别方法“EF\u Examples\u 02.Person LastOrDefault[Person]

我有两张表(个人,收入),每个人可以有n份收入。
两个表之间有关系。

这里的问题是,
LastOrDefault
没有转换为SQL语句

基本上你有两个选择:

首先获取所有数据:

       //Delete Last Record which has income
        var itemToRemove = db.People.LastOrDefault(p => p.Incomes.Any());
        db.Incomes.RemoveRange(itemToRemove.Incomes);
        db.People.Remove(itemToRemove);
或按降序排列,或按id排列:

//the tolist will fetch the data from the database
db.People.ToList().LastOrDefault(p => p.Incomes.Any()); 
至于混合选项:

db.People.Where(p => p.Incomes.Any()).OrderByDescending(c => c.Id).FirstOrDefault();

这里的问题是,
LastOrDefault
没有转换为SQL语句

基本上你有两个选择:

首先获取所有数据:

       //Delete Last Record which has income
        var itemToRemove = db.People.LastOrDefault(p => p.Incomes.Any());
        db.Incomes.RemoveRange(itemToRemove.Incomes);
        db.People.Remove(itemToRemove);
或按降序排列,或按id排列:

//the tolist will fetch the data from the database
db.People.ToList().LastOrDefault(p => p.Incomes.Any()); 
至于混合选项:

db.People.Where(p => p.Incomes.Any()).OrderByDescending(c => c.Id).FirstOrDefault();

问题出在LastOrDefault中。对实体的绑定不支持它

您必须知道,一些可枚举函数不能作为可查询函数执行

LastOrDefault:不支持

幸运的是,FirstOrDefault得到了支持

通常,如果搜索First/Last而不进行任何排序,则结果相当不可预测


考虑为自己指定最后一个元素的名称,之后可以很容易地按降序排序,因此它将是可以查询的第一个元素。

问题在于LastOrDefault。对实体的绑定不支持它

您必须知道,一些可枚举函数不能作为可查询函数执行

LastOrDefault:不支持

幸运的是,FirstOrDefault得到了支持

通常,如果搜索First/Last而不进行任何排序,则结果相当不可预测


考虑为自己指定最后一个元素的名称,之后可以很容易地按降序排序,因此它将是可以查询的第一个元素。

它无法将
LastOrDefault
转换为SQL语句。没有等价物!它不能将
LastOrDefault
转换为SQL语句。没有等价物!让我们对它有更多的了解。这些代码删除最后一个有收入的人。但不要将他们的收入从收入表中删除。db.收入移除范围(项目移除收入);你有错误吗?当我关闭visual studio并再次打开它时,它工作正常,非常感谢我的朋友。非常感谢。这些代码删除最后一个有收入的人。但不要将他们的收入从收入表中删除。db.收入移除范围(项目移除收入);你有错误吗?当我关闭visual studio并再次打开它时,它工作正常,非常感谢我的朋友。