dapper rainbow MissingMethodException
Почему я получаю это исключение? Код не тот же, но близкий к демонстрационной версии https://gist.github.com/1599013
Исключение: MissingMethodException
Описание изделия:
Метод не найден: 'System.Collections.Generic.IEnumerable
1<System.Object> Dapper.SqlMapper.Query(System.Data.IDbConnection, System.String, System.Object, System.Data.IDbTransaction, Boolean, System.Nullable
1, System.Nullable`1) '.
Код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
using Dapper;
using System.Data.SqlClient;
using MySql.Data.MySqlClient;
namespace daconsole2
{
class Program
{
class Product
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public DateTime? LastPurchase { get; set; }
}
// container with all the tables
class MyDatabase : Database<MyDatabase>
{
public Table<Product> Products { get; set; }
}
//*/
static void Main(string[] args)
{
var cnn = new MySqlConnection("uid=name;pwd=pw;Port=3306;database=test");
cnn.Open();
var db = MyDatabase.Init(cnn, commandTimeout: 2);
//if(false)
db.Execute(@"create table Products (
Id int primary key,
Name varchar(20),
Description TEXT,
LastPurchase datetime)");
var productId = db.Products.Insert(new { Name = "Hello", Description = "Nothing" });
//var db = cnn;
Console.ReadKey();
}
}
}
1 ответ
У нас была такая же проблема, и оказалось, что некоторые проекты в решении ссылались на разные версии Dapper. Например, один проект использовал версию времени выполнения, которая показала v4.0.30319 в окне свойств. Другой проект имел версию среды выполнения Dapper v2.0.50727 (.NET 3.5).
Как только я установил их на версию v2.0.50727, эта ошибка исчезла.
* Следует отметить, что они оба показывают версию файла 1.12.0.0, так что это не надежный способ отличить их друг от друга.