如何使用LINQ(WPF项目)避免SQL字符串



我正在使用Microsoft WPF在SQL Server上开发一个应用程序,用于一个较大的系统。

这是一个大学高级项目,由于投资组合原因,我希望事情尽可能地"最佳实践"。我知道MVVM是构建WPF应用程序本身的方法。

此外,我有兴趣利用LINQ而不是" SQL查询字符串"方法的数据操作和检索方法,但是我很沮丧,因为我似乎无法直接得到有关如何执行此操作的直接答案正确的方法(或者这是最佳实践(。

我找到了一个有希望的教程,但是它呼吁使用Linq-to-SQL创建我所读过的对象关系,而该对象关系已被拒绝,并且在VS2017中不可用。我找到了一个日期的教程,该教程正在使用Ado.net(〜2010(,但是它给了我问题。

我应该坚持做事的" sql查询字符串"方式?

您可以使用C#中的实体框架进行此操作。

  1. 将数据库的实体模型添加到您的应用程序中。
  2. 然后在要调用数据的类中创建一个对象

    <your-entities> context = new <your-entities>();
    
  3. 然后您可以使用Linq

    调用数据
    var select = from a in context.<table-name>.IEnumerable() select a;
    

    最后,您可以使用select变量读取数据。

eg - :

 foreach(var item in select){
 }

最佳实践?不要将Linq到SQL。我不反对简化小型学生项目的事情的想法,但是尽管简化了事情,但它使在现实世界中为DBA提供了噩梦。实体框架也会引起这种胃灼热,但有一些方面的方式。

如果通过" SQL查询字符串"的方式来编码SQL查询字符串并从您的代码发送到数据库。如果事情是可以预见的,那可以起作用。但是,如果您太活跃,您只需重复DBA的噩梦。

我会查找存储库模式并学习如何创建存储库。虽然您可能不必在现实世界中始终做到这一点,但在学习抽象方面,这是一个很好的练习。对于您可能需要进行大量连接的项目,请考虑检查视图的创建并构建一些存储过程。当您离开教室从事商务时,所有这些都会为您服务。

作为一点点琐事,Linq到SQL是一个在反应性扩展之上写的实验(Eric Maier在Microsoft和Microsoft在一起时,而不是激动敏捷(。如果不是因为SQL Server与Visual Studio 2008的共同发布延迟,SQL Server的延迟是指实体框架的延迟,这可能从未发布过,这意味着"在15分钟内构建站点"谈话是fubared。因此,Linq到SQL成为事实上的"标准",到处都有DBA开始运送枪支(好吧,最后一部分不是真的,但其余部分是(。

最新更新