2
와 SQL에 나열 나는 다음과 같은 두 테이블이 있습니다삽입 아이가 단정 한
public class TestA
{
public int Id { get; set; }
public string Name { get; set; }
public IEnumerable<TestB> Test { get; set; }
}
public class TestB
{
public int Id { get; set; }
public int TestAId { get; set; }
}
아이디어는 내가하여 TestA 개체에서하여 TestA 관련된 모든를 TestB 기록에 액세스 할 수 있습니다입니다. 내가 알아 내려고 노력하고 있어요 것은 내가를 TestB 여기 테스트 A에 관련된 여러 행이 특히, 테스트 A와를 TestB 모두에 삽입 어떻게 것은 내가 뭘하려 : 나는 우리가 말끔 해 줄 수 있다는 것을 알고
var data = new TestA
{
Name = "ABC",
Id = 1,
Test = new List<TestB>
{
new TestB() { Id = 1, TestAId = 1},
new TestB() {Id = 2, TestAId = 1},
new TestB() {Id = 3, TestAId = 1}
}
};
var query = "INSERT INTO TestA(Id, Name) VALUES(@Id, @Name) INSERT INTO TestB(Id, TestAId) VALUES(@Test.TestB.Id, @Test.TestB.TestAId)";
using (var con = conn)
{
con.Execute(query, data);
}
목록을 작성하면 해당 목록을 열거하고 개별 레코드를 삽입 할만큼 똑똑하지만 개체의 자식 인 경우 동일한 작업을 수행하려면 어떻게해야합니까? 내 값을 @Test.Id, @Test.TestAId
으로 만들려고했으나 정확히 같은 오류가있었습니다.
형 Test.TestB의 회원은 당신이 시도 할 수있는 매개 변수 값
내가 할 수있는 방법이 있는지 알아 내려고했다 Dapper가 모든 것을 처리합니다. 불가능할 것 같아요. 또한 루핑 대신에'conn.Execute (processQuery, data.Test); 할 수 있습니다. '목록을 가져 와서 삽입 쿼리를 생성하고 실행하는 것만으로도 똑똑합니다. – Bojan