2015-07-29 1 views
0

Я только начал использовать щеголеватый для моих проектов и я просто не могу найти способ, чтобы передать объект в качестве параметра в Dapper.NetКак передать целые свойства объекта внутри Params с помощью dapper.net

Есть ли способ любого процесса передать объект в качестве параметра, тогда Dapper сопоставляет свойства объекта с параметризованным SQL?

вместо этого:

public class Product 
{ 
    public int ProductID { get; set; } 
    public string Name { get; set; } 

    public string Description { get; set; } 
    public decimal Price { get; set; } 
    public string Category { get; set; } 
} 

static void Main(string[] args) 
{ 
    Product product = new Product() 
    { 
     Name = "DHS - 3 Star Ball", 
     Price = 11, 
     Category = "Table Tennis", 
     Description = "ITTF - Approved Table Tennis Ball", 
     ProductID = 1 
    }; 

    using(IDbConnection dbConnection = ...ConnectionStrings) 
    { 
     string query = "INSERT INTO Products (Properties here) VALUES (@Properties)"; 
     dbConnection.Execute(query, ...product.properties here sample: product.ProductID); //<------- Is there any substitute to this? 
    } 

} 

ответ

1

Я не думаю, что вы можете сделать это только щеголеватый, но с Dapper.Contrib. Dapper.Contrib содержит ПОЛЕЗНЫЕ как

расширения
T Get<T>(id); 
IEnumerable<T> GetAll<T>(); 
int Insert<T>(T obj); 
int Insert<T>(Enumerable<T> list); 
bool Update<T>(T obj); 
bool Update<T>(Enumerable<T> list); 
bool Delete<T>(T obj); 
bool Delete<T>(Enumerable<T> list); 
bool DeleteAll<T>(); 

для получения дополнительной информации Вы можете посмотреть на here

можете с помощью Dapper.contrib, вы можете сделать что-то вроде этого, даже написать SQL запроса и передать параметры

class Program 
    { 
     static void Main(string[] args) 
     { 
      var usr = new User() 
      { 

       Email = "testmail", 
       Name = "testname" 
      }; 

      var connection = System.Configuration.ConfigurationManager.ConnectionStrings["MainDb"].ConnectionString; 
      using (IDbConnection dbConnection = new SqlConnection(connection)) 
      { 
      dbConnection.Open(); 
       long insert = dbConnection.Insert<User>(usr); 
      } 
     } 
    } 

    [Table("[User]")] 
    public class User 
    { 
     [Key] 
     public int Id { get; set; } 
     public string Name { get; set; } 
     public string Email { get; set; } 

    } 
+0

Thanks @Sakir! Я посмотрю на ссылку, которую вы мне дали. Это очень полезно, и код - это само слово .. DAPPER! : D – Reyn