Aşağıdaki çözümü buraya gönderiyorum çünkü bazı aramalardan sonra burası indiğim yer, diğerleri de olabilir. Bir saklı yordamı çağırmak için EF 6'yı kullanmaya çalışıyordum, ancak benzer bir hatayla karşılaştım çünkü saklı yordamın kullanılan bağlantılı bir sunucusu vardı .
Bağlı sunucu için _ OLE DB sağlayıcısı _ dağıtılmış bir işlem başlatamadığından işlem gerçekleştirilemedi
İş ortağı işlem yöneticisi, uzak / ağ işlemleri için desteğini devre dışı bıraktı *
SQL İstemcisine atlamak sorunumu çözdü, bu da benim için bir EF meselesi olduğunu doğruladı.
EF modeli yöntem tabanlı girişim üretti:
db.SomeStoredProcedure();
ExecuteSqlCommand tabanlı girişim:
db.Database.ExecuteSqlCommand("exec [SomeDB].[dbo].[SomeStoredProcedure]");
İle:
var connectionString = db.Database.Connection.ConnectionString;
var connection = new System.Data.SqlClient.SqlConnection(connectionString);
var cmd = connection.CreateCommand();
cmd.CommandText = "exec [SomeDB].[dbo].[SomeStoredProcedure]";
connection.Open();
var result = cmd.ExecuteNonQuery();
Bu kod kısaltılabilir, ancak bu sürümün hata ayıklama ve adım adım ilerlemek için biraz daha uygun olduğunu düşünüyorum.
Sql Client'ın mutlaka tercih edilen bir seçim olduğuna inanmıyorum, ancak benzer sorunları olan başka biri google tarafından buraya gelirse bunun en azından paylaşmaya değer olduğunu hissettim.
Yukarıdaki Kod C #, ancak Sql İstemcisine geçmeye çalışma kavramı hala geçerlidir. En azından bunu yapmaya çalışmak tanısal olacaktır.