Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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
.net 如何使用Linq to SQL仅更新实体的某些字段?_.net_Linq To Sql - Fatal编程技术网

.net 如何使用Linq to SQL仅更新实体的某些字段?

.net 如何使用Linq to SQL仅更新实体的某些字段?,.net,linq-to-sql,.net,Linq To Sql,如何使用Linq to SQL仅更新实体的某些字段 ASPX页面: Dim pdf As New Dashboard.Process_PDF() pdf.ID = ID pdf.Label = rtbLabel.Text pdf.IsShared = cbxIsShared.Checked pdf.AccountID = AccountID If RadUpload1.UploadedFiles.Count > 0 Then '<-

如何使用Linq to SQL仅更新实体的某些字段

ASPX页面:

    Dim pdf As New Dashboard.Process_PDF()
    pdf.ID = ID
    pdf.Label = rtbLabel.Text
    pdf.IsShared = cbxIsShared.Checked
    pdf.AccountID = AccountID

    If RadUpload1.UploadedFiles.Count > 0 Then  '<-- Uploading a new file is optional in Update Form but is required for Insert (Insert works fine)'
        Dim imageFile As UploadedFile = Nothing
        imageFile = RadUpload1.UploadedFiles(0)
        Dim bytes() As Byte = New Byte(imageFile.InputStream.Length - 1) {}
        imageFile.InputStream.Read(bytes, 0, CInt(imageFile.InputStream.Length))
        pdf.FileName = imageFile.FileName
        pdf.FileBytes = bytes
        pdf.FileSize = imageFile.ContentLength
        pdf.ContentType = imageFile.ContentType
        pdf.UploadedBy = RUserName
    End If

    pdf.Update()
过程\u PDF.vb-版本2
如果我有此项(如下),则在附加行上出现错误:

如果实体声明版本成员或没有更新检查策略,则只能将其附加为“已修改”,而不附加原始状态

公共子更新()

dc.Process_PDFs.Attach(Me,True)“最干净的方法是检索实体,更新需要更新的字段,并调用SubmitChanges()。(创建新实体并复制属性的缺点是,如果向实体添加新字段,则需要更新代码,因此不容易维护)+无论如何,LINQ需要修改原始实体,以便它可以确定已更新的字段…

您建议我如何使用我发布的当前代码执行此操作?原始实体已分离,我无法分离它,因为我的业务层和表示层是分离的。如果您有分离的实体,则可以使用Attach(UpdateEndity,originalEntity)。我无意中给了您奖金(这很好),但您的建议无效。你有我上面所有的代码,所以我不知道还能给你什么。我希望有人能给我提供一个简单(但完整)的代码示例,说明如何在我在初始请求中描述的场景中更新实体。如果我没有实体中的所有属性,我仍然希望能够更新实体,而不必逐个从当前实体重新分配到新实体。当db表中有100个字段时,这是不实际的,因此必须有一种方法来做到这一点。您的DataContext是单例的,还是它的范围是什么?请指定您得到的错误。
Public Sub Update()
    dc.Process_PDFs.Attach(Me)
    dc.SubmitChanges()
End Sub
Public Sub Update()
    dc.Process_PDFs.Attach(Me,True) '<--- ERRORS OUT HERE'
    dc.SubmitChanges()
End Sub
Public Sub Update()
    dc.Process_PDFs.Attach(Me)
    dc.Refresh(System.Data.Linq.RefreshMode.KeepCurrentValues, Me)
    dc.SubmitChanges() '<--- ERRORS OUT HERE IF NO FILE UPDATE'
End Sub