mvc Entity Framwork,使用表格中的select max()插入

时间:2017-02-21 18:36:57

标签: entity-framework stored-procedures

我正在使用MV5Entity Frameowrk开发应用以连接到SQL Server数据库

我需要做一个Insert,其中ID就是这样。

  

从表中选择max(id)+1,其中field_id = @ID。

我们的想法是在一次交易中完成。 是否可以在实体框架中执行此操作,或者我应该使用Store Procedure

1 个答案:

答案 0 :(得分:1)

EF将您提供的C#表达式编译到SQL中,然后执行生成的SQL。因此,您可以在LINQ中编写这样的查询,实际上这可以在单个"调用"到数据库:

long id = MyDbContext.MyDbSet.Max(entity => entity.Id) + 1;

请注意,如果您这样做是为了可以为新条目分配不存在的ID,则不需要。 EF会为您处理此问题,只要该字段名为Id且类型为long。只是不要给它任何值。