使用 Linq-to-Entities 进行 if-exists-UPDATE-else-INSERT?
有没有办法使用 Entities 和 LinQ 编写相同的 SQL 原子指令?
如果存在(SELECT * FROM MyTable WHERE ID = @Id) 更新 MyTable SET 名称 = @name 别的 INSERT INTO MyTable (@Id, @name)
或者您是否需要从 EF 中调用存储过程?
is there a way to write this same SQL atomic instruction using Entities and LinQ?
IF EXISTS (SELECT * FROM MyTable WHERE ID = @Id)
UPDATE MyTable SET name = @name
ELSE
INSERT INTO MyTable (@Id, @name)
or do you need to call a stored procedure from within the EF?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
实体框架跟踪对象的生命周期:
UPDATE
。INSERT
。如果您希望调用单个 SQL,无论是否需要
INSERT
或UPDATE
操作,您都必须指定一个存储过程。The Entity Framework keeps track of the lifespan of objects:
UPDATE
when pushing changes back to the database.INSERT
when pushing the changes to the database.If you wish to have a single piece of SQL called, regardless of whether an
INSERT
orUPDATE
operation is required, you will have to specify a stored procedure.