C# 数据访问层(不是 EF,而是 SP 和对象)
C# Data Access Layer (Not EF but SP and objects)
我已被要求创建一个应用程序,该应用程序使用带有存储过程的现有数据库(insert
、update
、delete
),但他们没有想要使用Entity Framework
.
一种方法是使用 System.Data.DataSet
创建我自己的 数据访问层 但我想知道是否有任何现有的库或我可以在哪里使用的东西可以从 SP 填充对象,也可以使用 SP 更新数据。
Any clue?
如果你真的想走这条路,你可以使用Automapper
看看这个post
How do I use automapper to map a dataset with multiple tables
不过,请记住,性能实际上可能非常糟糕。
恕我直言,EF 是更好的选择。
您可以使用像 Dapper 这样的微型 orm,它简单、高效并且可以正确映射到对象。
使用示例:
// Call spGetUser with a parameter Id and put the result in a User instance.
var user = cnn.Query<User>("spGetUser", new {Id = 1},
commandType: CommandType.StoredProcedure).SingleOrDefault();
我通常推荐使用Dapper。它非常轻巧,性能与 ADO.NET 编码相当。
我已被要求创建一个应用程序,该应用程序使用带有存储过程的现有数据库(insert
、update
、delete
),但他们没有想要使用Entity Framework
.
一种方法是使用 System.Data.DataSet
创建我自己的 数据访问层 但我想知道是否有任何现有的库或我可以在哪里使用的东西可以从 SP 填充对象,也可以使用 SP 更新数据。
Any clue?
如果你真的想走这条路,你可以使用Automapper
看看这个post How do I use automapper to map a dataset with multiple tables
不过,请记住,性能实际上可能非常糟糕。
恕我直言,EF 是更好的选择。
您可以使用像 Dapper 这样的微型 orm,它简单、高效并且可以正确映射到对象。
使用示例:
// Call spGetUser with a parameter Id and put the result in a User instance.
var user = cnn.Query<User>("spGetUser", new {Id = 1},
commandType: CommandType.StoredProcedure).SingleOrDefault();
我通常推荐使用Dapper。它非常轻巧,性能与 ADO.NET 编码相当。