如何在ServiceStack.OrmLite中使用参数执行SQL语句?

时间:2014-05-19 08:48:06

标签: c# servicestack ormlite-servicestack

我想在ServiceStack ormlite中使用paraemeters执行SQL语句

String.Format("SELECT OBJECT_ID(@name)", name);

我想要最好的方式。

2 个答案:

答案 0 :(得分:5)

您可以SqlScalar<T>使用T int。然后只需使用您的参数传递一个匿名对象。

int result = db.SqlScalar<int>("SELECT OBJECT_ID(@name)", new { name = "SomeName" });

选择POCO类型的List<T>而不是您可以使用的int

var results = db.SqlList<User>("SELECT * FROM Users WHERE Name = @name", new { name = "SomeName" });

您可以在官方文档示例中read more here

希望这有帮助。

答案 1 :(得分:3)

如果您需要POCO结果,可以使用:

List<Person> results = db.SqlList<Person>("SELECT * FROM Person WHERE Age < @age", new { age=50});

参考:https://github.com/ServiceStack/ServiceStack.OrmLite#typed-sqlexpressions-with-custom-sql-apis