【问题标题】:.NET, C#, LINQ, SQL and OR-Mapping - I just don't get it :(.NET、C#、LINQ、SQL 和 OR-Mapping - 我就是不明白 :(
【发布时间】:2010-12-16 18:16:48
【问题描述】:

我只是不明白,我什至不确定我是否在寻找正确的方向......

问题:

这就是我的 C# 应用程序。我通过 SSH 连接到在线 MySQL 数据库。现在,我可以使用 MySQL Connector/.Net 驱动程序 (http://dev.mysql.com/downloads/connector/net/5.2.html) 在其上运行 query-stuff。一切正常。

现在我想要一些 OR-Mapping:我想要在本地实体上运行查询。

例如:在线数据库中有'order'表,它有'order_total'和'order_date'属性。

现在我运行“SELECT * FROM order”

接下来是什么?如何将此结果转换为实体,然后在修改后将更改写回?到目前为止,我所能找到的只是,这与 LINQ 和(也许)XML 有关系。但我只是不明白整个事情:(

我很感激每一个提示或者一个简短的例子:)

提前致谢!

【问题讨论】:

    标签: c# .net mysql linq orm


    【解决方案1】:

    我认为,您正在考虑的是 Linq to Sql。但这仅适用于 SQL Server。

    http://www.mikeborozdin.com/post/LINQ-To-MySQL.aspx

    因此,您唯一的选择是根据从 MySql 服务器获得的数据构建对象,然后对对象执行标准 linq 以进行映射。

    希望这会有所帮助, 干杯,

    【讨论】:

    • 非常感谢!我认为这几乎就是我一直在寻找的……我希望 :)
    • OP 正在寻求理解 ORM,它适用于 MySQL。我相信他只是对什么是 ORM 感到困惑,而 LINQ to SQL 是 MySQL 的错误方向。 SubSonic 更合适subsonicproject.com
    【解决方案2】:

    听起来你想要 Linq to Entities,它支持 SQL Server 以外的数据库。您需要找到一个 MySQL 驱动程序——我在网上搜索时可以看到一些(DevArt、Connector/NET 等)。自己没试过。

    【讨论】:

      【解决方案3】:

      有很多支持 Linq 可查询对象的 ORM。他们中的大多数都使用 ADO 驱动程序。如果有一种 DbProvider 支持您的 DBMS,并且您可以指定一个 ConnectionString 将您带到 DBMS 实例,您可以使用其中之一。

      看看 Fluent NHibernate。 IMO 它应该提供一个易于实现但可扩展的映射器,该映射器使用您现有的域模型,不生成 DTO 层,最重要的是不需要大量的 XML。

      【讨论】:

        【解决方案4】:

        首先查看 ADO.NET。它可以为所欲为。

        如果您想要更强大的东西,请考虑使用像 NHibernate 或实体框架这样的 ORM。您不需要 Linq,但如果您需要 Linq,则需要使用 ORM。 LinqToSql 是一个不能与 MySQL 一起使用的 ORM,所以搜索“Linq”而不是“LinqToSql”。

        如果您知道自己在寻找什么,有大量示例可以说明如何做到这一点。

        【讨论】:

          猜你喜欢
          • 2011-09-22
          • 1970-01-01
          • 1970-01-01
          • 2011-01-14
          • 2011-02-16
          • 1970-01-01
          • 2011-05-08
          • 2018-08-03
          • 2023-03-10
          相关资源
          最近更新 更多