ORM、C# 和 MySQL - Take2

Posted

技术标签:

【中文标题】ORM、C# 和 MySQL - Take2【英文标题】:ORM, C# and MySQL - Take2 【发布时间】:2010-12-17 09:46:06 【问题描述】:

这个问题其实是指another one already asked,现在我想重新表述一下:)

我的问题是:有一个在线商店在 mysql 数据库上运行,托管在互联网上。现在我想从我的 C# 应用程序中做一些管理工作。

我想要做的:我想要在该数据库上运行 SQL 查询,并将结果作为我的应用程序中的实体获取,这样我就可以像通过普通列表/类一样浏览它们,然后将更改回发到数据库。问题不在于与数据库的连接——它工作正常(使用 SSH 和连接器/NET 驱动程序)——但问题在于如何将 SQL 结果转换为 C# 类。

我仔细研究了Fluent NHibernate 和SubSonic,但我仍然无法确定哪一个最适合,或者更糟糕的是——如果这些真的是解决我的问题的正确方法。

所以我不想构建一个将自己的数据存储在数据库中但从公共数据库获取所需数据的应用程序。

我希望这次我可以让自己更清楚:)

提前致谢!

【问题讨论】:

我从未真正使用过 ORM,但您发布的那些链接看起来不错,让我想学习。为什么不通读两者的文档并选择一个来试用。从你所说的来看,我听起来像是你所追求的。 是的,我同意,这是一个非常有趣的话题 :) 但我的观点是,我认为我发布的这些解决方案是针对数据库应用程序(AFAIK 是 ORM 的真正意义)。但我不想创建包含大量字段的 150 个实体类,我只想在运行 SQL 查询时将它们作为集合自动提供。 @Quasdunk,似乎您想要的是让 ORM 生成您映射的类,这样您就不必自己编写它们。对吗? 我发布了对您其他问题的回答,也很好地回答了这个问题。 @Mattias,没错!相反,我希望将更改写回数据库! 【参考方案1】:

ORM 绝对是一种方法,因为它允许您抽象数据访问。

您可能会发现代码生成器很有帮助(避免编写类及其所有属性的重复性任务):NHibernate Code Generation。

这样,您仍然可以使用经典的 NHibernae 而不是 Fluent Hibernate,顺便说一下,它看起来非常有用。

【讨论】:

非常感谢,所以我想我将不得不坚持使用 NHibernate...谢谢你们! - AFK,阅读文档:-P

以上是关于ORM、C# 和 MySQL - Take2的主要内容,如果未能解决你的问题,请参考以下文章

C# - Kerosene ORM - 找不到默认引擎和连接字符串

C#轻型ORM框架PetaPoco试水

mysql允许root远程连接,附超全教程文档

C# 数据操作系列 - 4. 自己实现一个ORM

C# 数据操作系列 - 4. 自己实现一个ORM

献给转java的c#和java程序员的数据库orm框架