Dapper.net 및 ServiceStack.OrmLite를 사용하여 그리드에서 데이터 저장

dapper servicestack vb.net

문제

CRUD 작업에 대해 datagridview를 사용하고 있습니다.

이전에 ADO.net을 사용하고 나중에 EF 로 이동했을 때 나는 원하는 모든 명령을 성공적으로 수행하고있었습니다. 삽입, 업데이트 또는 삭제.

첫 번째 행 또는 네 행과 열 11 행을 업데이트하고 두 번째 행을 삭제하면 무엇이 있는지, 그리고 새 행을 추가해야 하는지를 가정 해 봅시다. DataGridview를 사용하여 동시에 모든 작업을 수행 할 수 있습니다.

다음이 모든 수정 후 그냥 DA.Update (DS) 또는 EF SaveChanges 호출해야하며 내 모든 데이터가 저장됩니다. 처음 두 시나리오에서 나는 그것을 정확하게 할 수있다!

처음 두 예제 : ADO.NET 및 EF6

나는 다음과 같은 방법으로 이것을했다 :

  1. ADO.NET :

        Dim command As New SqlCommand
    
        command = New SqlCommand(query, conn)
        command.CommandTimeout = 200
        ds = New DataSet
        SQLDA = New SqlDataAdapter(command)
    
    
        SQLDA.Fill(ds)
        Dim cb As New SqlCommandBuilder(SQLDA)
        Dim bs As New BindingSource
        bs .DataSource = ds.Tables(0)
        DGV.DataSource = bs 
    
        button_clik
      SQLDA.UPDATE(ds)    'save all changes i have made
    
  2. EF

            db = New _Context
    
            db.tPROMs.Load()
    
            Dim b = db.tPROMs.Local.ToBindingList
    
            b.AllowEdit = True
            b.AllowNew = True
            b.AllowRemove = True
    
            Dim bs As New BindingSource
            bs.DataSource = b
            DGV.DataSource = bs 
    
            button_clik
            db.SaveChanges()   'save all changes i have made
    

이제 DAPPER.NET 또는 ServiceStack.OrmLite를 사용하여 그리드에서 직접 데이터를 저장할 수 있습니까?

지금까지 나는 이것을 ADO.NET과 EF6을 통해 수행했습니다. 하지만 더 나은 성능을 얻으려면 이제 Dapper.net 또는 ServiceStack.OrmLite를 사용하고 싶습니다.

  1. DAPPER.NET

            ???????  
    
  2. ServiceStack.OrmLite

            ???????
    

내 질문

수락 된 답변

귀하의 코드를 따르는 데 어려움을 겪고 있습니다 만, 삽입을위한 더 까다로운 구문은 다음과 같아야합니다.

using (var conn = new SqlConnection("YourConnString"))
{
    return conn.Execute(query, instaceToInsert);
}

Dapper는 모델의 속성을 쿼리의 필드에 자동으로 매핑합니다 ...

예를 들어 쿼리를 삽입하는 경우는 다음과 같습니다.

INSERT INTO Users (LastName, FirstName) VALUES (@LastName, @FirstName)

당신의 모델은 다음과 같을 필요가 있습니다 :

public class User
{
    public string LastName { get; set; }
    public string FirstName { get; set; }
}

그리고 instanceToInsert를 user의 인스턴스로 대체하십시오.

using (var conn = new SqlConnection("YourConnString"))
{
    return conn.Execute(query, new User {LastName = "John", FirstName = "Doe"});
}

다음은 VB.NET 버전입니다.

Using conn = New SqlConnection("YourConnString")
    Return conn.Execute(query, instaceToInsert)
End Using

Public Class User
    Public Property LastName() As String
    Public Property FirstName() As String
End Class

Using conn = New SqlConnection("YourConnString")
   Return conn.Execute(query, New User() With { .LastName = "John", .FirstName = "Doe"})
End Using


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow