【问题标题】:Designing a data model in VS2010 and generating ORM code, application在VS2010中设计数据模型并生成ORM代码,应用
【发布时间】:2010-05-19 15:03:34
【问题描述】:

简单地说:我脑子里有一个数据库设计,我现在想使用 Visual Studio 2010 创建一个 WPF 应用程序。关键是使用 VS2010 工具,让我尽可能多地完成手动工作。

  • 数据库引擎是 SQLite
  • ORM 可能通过 DBLINQ
  • LINQ 的使用
  • 应用程序可以创建新的空数据库实例
  • 易于维护(可以更改数据模型)

问题

  • 如何开始在 Visual Studio 2010 中设计数据库模型(可视化)?这应该是xsd吗?我是否在单独的项目中执行此操作?
  • 接下来,如何充分利用 VS2010 代码生成工具来生成数据访问层?
  • 我想数据访问层将作为数据源添加(在另一个项目中?),从那里它是一个相当通用的数据绑定解决方案?

我试图找到这方面的明确示例,但那里是一片丛林,寻找解决方案并没有收敛到一个明确的方法。

更新

所以我决定使用 ADO.NET 实体框架,DBLINQ 是不可能的。我下载并安装了与 VS2010 集成的 System.Data.SQLite ADO.NET 提供程序。从 VS2010 Server Explorer 可以创建和设计一个新的数据库,但也可以使用 SQLite 的独立工具来完成。然后,我创建了一个新的 WPF 应用程序项目,并在解决方案资源管理器中添加了一个 ADO.NET 实体数据模型,它会从已创建的数据库文件中自动生成一个带有 C# 代码(即数据访问层)的 edmx。 WAF (waf.codeplex.com) 似乎是实现其余部分的好主意,但普通的 LINQ to SQL 就可以了。 This (click here) 也是关于stackoverflow 的一个非常有用的问题。

【问题讨论】:

    标签: wpf database visual-studio-2010 entity-framework sqlite


    【解决方案1】:

    凯,

    请考虑使用 ADO .NET Framework。 VS 2010 和 LINQ (quick article) 支持它。

    在设计架构之前,您必须了解一件事。 BLL(业务逻辑层)是特定于特定数据使用的逻辑层,因此不能由(无论您将使用什么)框架自动生成。我猜你已经想到了数据访问层——不用担心——如果你打算使用 ADO .NET 和 LINQ to Entities,DAL 会自动为你生成。 LINQ to Entities 与 ADO .NET Framework 是一组功能强大的工具,应该 100% 满足您的需求。 Additional info about LINQ to Entities.

    如果您有任何问题,请随时提出。

    【讨论】:

    • 谢谢,皮奥特。我认为下一个最佳选择是 LINQ to SQL? (虽然我没有概念模型)。该应用程序并不是很大,我正在处理 20 到 30 个数据库表。我发现了一些关于实体框架的东西,“不信任投票”,你一定听说过。这可能与 VS2010 几乎没有关系。评论?
    • 如果您的项目不是很大,LINQ to SQL 似乎是一个不错的选择。我在 VS 2008 和 2010 中使用 ADO .NET,从来没有遇到过问题。我想你可以试一试。
    • 成功!我向我的 WPF 项目添加了一个 ADO.NET 实体数据模型(来自单表 SQLite 数据库只是为了尝试一下)。有一个带有 C# 代码的 edmx 文件。打开 edmx 时,表格实体在图表中可视化,看起来不错。虽然 C# 代码看起来很复杂。它会在这个 C# 源文件中生成所有实体代码吗?这是否适用于 WPF?例如,我可以将表格实体拖放到页面或窗口上吗?
    • 太棒了。这段代码确实看起来很复杂,但你可能永远不会自己打开这个文件。是的,您可以在这个单一文件中找到映射的数据库。这将与 WPF 完美配合 - 您只需定义适当的绑定。要查找有关使用映射框架查询数据库的更多信息,请查看此网站:msdn.microsoft.com/en-us/library/bb738458.aspx 如果我的回答有帮助,请将其标记为有帮助并接受它可以帮助其他有类似问题的人。
    猜你喜欢
    • 2012-06-16
    • 1970-01-01
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    相关资源
    最近更新 更多