【发布时间】:2015-03-09 14:51:02
【问题描述】:
我正在开发一个 C# 应用程序并实现 Linq-To-Sql。
对于大多数表,我只需要常用的 CRUD 方法(创建、读取、更新、删除)。所以我想知道是否有办法在 Visual Studio 中生成它们?
我可以自己创建它们,但如果它们可以自动生成,我会赢得很多时间。我已经用 Symfony 完成了,为什么不用 .Net。
【问题讨论】:
-
不太清楚你在问什么,因为 Linq2Sql 的全部意义在于生成实体和方法来处理这些实体(查询、更新、删除等)。 Linq2Sql 中的什么没有做你想做的事?
-
您需要了解 LINQ 是一种查询语言。你用它来查询数据。 “查询”相当于“读取”。您不使用 LINQ 来创建、更新或删除。关于一般生成 CRUD 方法 - 这是一种非常糟糕的方法,会导致编写不可维护的代码。相反,请考虑编写一个数据访问层来动态编写这些方法。这样,如果数据库结构发生变化,您将无需重新生成任何内容。如果您考虑部署工作,好处就会加起来。
-
使用存储库模式或更改为 LINQ-to-EntityFramework。 EntityFramework 提供了一个带有默认方法的 DbContext 对象:
All<T>、Add<T>等。已经有一段时间了,所以我不记得 LINQ-to-SQL 是否提供了任何类型的 DbContext 对象。 -
听起来您正在寻找设置Entity Framework。 Linq-to-SQL 实际上只是用于使用 1-1 关系模型进行简单查询。这不是一个完整的 ORM。您正在寻找的库类型称为 ORM 或对象关系映射器,它用于对对象执行 CRUD 操作,而不是手动编写 SQL。 Entity Framework 也允许你为读取编写 linq 查询。
-
致 Peter Ritchie:Linq 完全按照我的意愿去做,但我有一些非常简单的要求要做,我正在寻找一种自动完成它们的方法,而不是每次都重新编写它们。对于 Neolisk:我使用 DAL 和 BLL,我想要简单的 CRUD 方法来处理 DAL 中的某些请求并在 BLL 中管理我的数据。但你是对的,我没想到我的数据库结构有一天会改变。对于 JNYRanger,我将在下一个项目中使用 Entity。在这一点上,它不会帮助我赢得一些时间。