2015-07-07 19 views
8

Tôi sử dụng trình đơn ORM. Do đó tôi sử dụng hai quy tắc Truy vấn & QuerySingle. Truy vấn trả về danh sách & QuerySingle trả về đối tượng đơn lẻ.quy tắc trả về loại bool trong công cụ lập bản đồ

Vì vậy, tôi muốn có được một kiểu bool. (Thật sự tôi muốn để có được một bool là true hoặc hồ sơ false)

Query My

public IEnumerable<T> Query<T>(string SqlString) where T : class 
    { 
     return this.conn.Query<T>(SqlString); 
    } 

Vì vậy, Làm thế nào tôi có thể viết bool kiểu trả về ?

+0

truy vấn sql của bạn thực sự trở lại là gì? – Jonesopolis

+2

Nếu bạn muốn sử dụng 'bool' làm kiểu generic thì không sử dụng ràng buộc' class'. – juharr

Trả lời

8

Vì vậy, tôi muốn có loại bool. (Trên thực tế tôi muốn để có được một bool là đúng hoặc hồ sơ sai)

Bạn có thể viết một phương pháp như thế này:

public bool GetBooleanValue(string sql) 
{ 
    return the_connection.Query<bool>(sql).FirstOrDefault(); 
} 

Vẻ đẹp về FirstOrDefault là khi truy vấn của bạn trả về một dòng sản phẩm nào , Dapper sẽ cung cấp cho bạn false. Mã được đề xuất đó sẽ hoạt động miễn là truy vấn của bạn trả về một giá trị có thể được nhà cung cấp dữ liệu dịch sang boolean. Trong trường hợp của SQL Server bạn sẽ nhận được:

  • TRUE cho GetBooleanValue("select 1");
  • FALSE cho GetBooleanValue("select 0");

nơi10 là những giá trị từ một cột bảng kiểu boolean.

Bạn thậm chí có thể sử dụng mã nếu bạn muốn kiểm tra xem có gì đó tồn tại hoặc một nhóm giá trị tồn tại giống như GetBooleanValue("select COUNT(*) from the_table where the_column='some_filter'") hay không.

Các vấn đề liên quan