Вот сокращенный пример того, что я пытаюсь сделать:
var stuffTOSave = new List<SomeObject> {
public int OtherTableId { get; set; }
public List<Guid> ComponentIds { get; set; }
};
var sql = @"CREATE TABLE Components( ComponentId uniqueidentifier PRIMARY KEY )
INSERT INTO Components VALUES (@WhatGoesHere?)
SELECT * FROM OtherTable ot
JOIN Components c on c.ComponentId = ot.ComponentId
WHERE Id = @OtherTableId
DROP TABLE Components"
Connection.Execute(sql, stuffToSave);
Я знаю из других вопросов SO , что вы можете передать список в оператор вставки с помощью Dapper , но я не могу найти примеры, которые передают список, а также другой параметр (в моем примере, OtherTableId
), или которые имеют список не-объектов (List<Guid>
в отличие от List<SomeObject>
, который имеет свойства с именами для ссылки).
Для второго вопроса я мог бы выбрать ComponentId
s в списке, чтобы дать им имя вроде:
stuffToSave.ComponentIds.Select(c => new { ComponentId = c })
, но тогда я не уверен, что добавить в мой запрос sql, чтобы dapper понимал, что свойство ComponentId
можно получить из моего списка ComponentIds
(строка 7)