LINQ2SQL更新数据库,但只有当我在SQL服务器查看
本文关键字:SQL 服务器 数据库 更新 LINQ2SQL | 更新日期: 2023-09-27 18:07:42
我有一个很奇怪的问题。
我有3张表。
- <
- 位置/gh>
- PositionAttachments 附件
我就不拿钥匙和外钥匙来烦你了,因为这应该是显而易见的。
如果我添加一个新的位置,附件和位置附件都很好。
如果我添加一个新的附件到现有的位置记录,我得到以下内容:
- 位置表更新,我可以看到屏幕上的变化
- 附件表有新记录
- PositionAttachments表有新记录
- 新附件没有出现在我的应用程序的屏幕上
- 关闭应用程序,重新编译并重新运行,我有相同的4
- 通过SQL server查看任何表,我被踢出我的会话,一旦我登录回来,我看到屏幕上的记录。
任何时候都不会产生错误。
更新记录代码;
public void AddAttachmentToPosition(PositionsAvailable positionModel, Attachment attachment)
{
//attachment.id = Guid.NewGuid();
dc.Attachments.InsertOnSubmit(attachment);
PositionAttachment positionAttachment = new PositionAttachment();
positionAttachment.PositionId = positionModel.PositionId;
positionAttachment.AttachmentId = attachment.id;
//positionAttachment.id = Guid.NewGuid();
dc.PositionAttachments.InsertOnSubmit(positionAttachment);
dc.SubmitChanges();
}
编辑
我已经查看了由数据上下文产生的日志,我得到了这个PositionAttachments插入。对于Attachments表,看起来基本相同。
DECLARE @output TABLE([id] UniqueIdentifier)
INSERT INTO [dbo].[PositionAttachments]([PositionId], [AttachmentId])
OUTPUT INSERTED.[id] INTO @output
VALUES (@p0, @p1)
SELECT [id] FROM @output
-- @p0: Input UniqueIdentifier (Size = 0; Prec = 0; Scale = 0) [92a3627d-ad01-466e-a315-423c851efc5d]
-- @p1: Input UniqueIdentifier (Size = 0; Prec = 0; Scale = 0) [db566728-a313-40c7-af82-0a2f147234eb]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 3.5.30729.5420
在我看来,这看起来很正常。此外,相同的代码工作时,我添加一个新的位置,而不是当我添加附件到现有的位置。
只是一种直觉,如果你试着:
PositionAttachment positionAttachment = new PositionAttachment();
positionAttachment.Position = positionModel;
positionAttachment.Attachmen = attachment;
尽管我认为DC也应该正确地拾取ID