Я пишу тест, чтобы проверить, работает ли мой оператор LINQ to Entity. Я буду использовать его для других, если смогу реализовать эту концепцию.
Я хочу здесь ВСТАВИТЬзапишите с ADO, затем убедитесь, что его можно запросить с помощью LINQ, а затем ROLLBACK целиком в конце.
Я использую ADO для вставки, потому что я не хочу использовать объект или модель объектачто я тестирую.Я полагаю, что обычная ADO INSERT должна работать нормально.
проблема в том, что ... они оба используют разные типы соединений.та же транзакция, чтобы я мог откатить ее обратно *
_conn = new SqlConnection(_connectionString);
_conn.Open();
_trans = _conn.BeginTransaction();
var x = new SqlCommand("INSERT INTO Table1(ID, LastName, FirstName, DateOfBirth) values('127', 'test2', 'user', '2-12-1939');", _conn);
x.ExecuteNonQuery(); //So far, so good. Adding a record to the table.
//at this point, we need to do **_trans.Commit()** here because our Entity code can't use the same connection. Then I have to manually delete in the TestHarness.TearDown.. I'd like to eliminate this step
//(this code is in another object, I'll include it for brevity. Imagine that I passed the connection in)
//check to see if it is there
using (var ctx = new XEntities(_conn)) //can't do this.. _conn is not an EntityConnection!
{
var retVal = (from m in ctx.Table1
where m.first_name == "test2"
where m.last_name == "user"
where m.Date_of_Birth == "2-12-1939"
where m.ID == 127
select m).FirstOrDefault();
return (retVal != null);
}
//Do test.. Assert.BlahBlah();
_trans.Rollback();