0

我想写一个函数,它应该将 SQL 查询作为参数并给出数据作为结果。所以,我希望这个函数能给出通用的结构。可能是最好的返回方式DataTable还是SqlDataReader
然后从它们中提取数据并将其放入具有特殊类型(不同类别的模型)的对象中?

可能存在一些模式吗?

4

3 回答 3

2

您可以将值直接返回给对象。但是您仍然需要最终将它们映射到某些东西。

通常对于这种“通用”用途,我看到所有内容都作为字符串传输。JSON如何在任何地方都被序列化为某种字符串,直到它最终在某处用作其他东西。

无论您使用 DataTable 还是其他东西,这都无关紧要,因为它最终将完全取决于您如何将这些数据变成有用的东西。

如果您想了解有关该方法的更多信息,可以查看http://en.wikipedia.org/wiki/NoSQL页面。

今年早些时候,Martin Fowler 做了一个关于无模式和 NoSql 的演讲,您可能会觉得很有趣。 http://www.youtube.com/watch?v=8kotnF6hfd8

不过,我会在这里回应其他一些答案,并且很可能主张不要做一些“通用”或“通用”的事情。只需预先进行一些工作,以使系统符合您绝对想做的事情并根据需要进行更改。

于 2013-03-29T19:56:10.547 回答
1

It sounds like you're just starting out. You may want to consider an ORM like Entity Framework Code First or NHibernate, or a MicroORM of which there are too many to list, rather than just running bare SQL against a db.

I find EF Code First to be great for beginners.

http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

ORMs let you define classes that map to the tables in your database, and ask for lists of those objects explicitly (solving the problem of what to return).

于 2013-03-29T19:57:38.500 回答
0

You could use c# dynamic as return type. I would recommend Dapper as ORM, it is fast and easy to use, and it has the functionality to return dynamics from an query, see the section:'Execute a query and map it to a list of dynamic objects'.

于 2013-03-29T19:58:34.103 回答