gpt4 book ai didi

c# - 有没有办法为 EF 模型自动创建 CRUD(目前是 DB First)

转载 作者:行者123 更新时间:2023-12-03 18:42:02 26 4
gpt4 key购买 nike

我正在创建一个 WPF 应用程序,并且我有一个想要使用而不是重新创建的现有数据库。如果必须,我会,但我宁愿不要。数据库是 sqlite,当我稍后将它添加到我的数据并基于数据库创建 DataModel 时,我得到了模型和数据库上下文,但是没有为 CRUD 或例如 .ToList() 创建方法,所以我可以返回 table 上的所有元素。

我是否需要手动创建所有这些,或者有没有办法像 MVC 可以搭建脚手架一样?

我正在使用安装了 Nu-Get 的 VS 2017、WPF、EF6 和 Sqlite

最佳答案

回答标题中的问题。

不。

没有像 MVC 那样搭建 UI 的单击按钮方法。

如果您一次只处理一个表,那么您可以构建一个通用存储库,该存储库返回给定表的列表。这不会为您节省太多编码,但您可以做到。

如果你让它返回一个 iQueryable 而不仅仅是一个 List,那么你可以“链接”这样一个查询。在您强制迭代之前,Linq 查询不会变成 SQL,您可以基于另一个添加条件、选择什么等以实现灵 active 。

在您的帖子正文中,您询问了读取和写入数据的方法。这似乎与另一个问题几乎完全无关,因为它是数据访问而不是 UI。

“没有为 CRUD 或例如 .ToList() 创建方法,因此我可以返回表中的所有项目。”

有一些方法以 LINQ 扩展方法的形式可用。
ToList() 就是其中之一,除了通常使用 async await 和 ToListAsync。

Where 和 Select 是其他扩展方法。

不过,您将编写任何暴露这些结果的模型层。

我不清楚您是否只是不知道 linq 还是什么,但这里有一个示例查询。

        var customers = await (from c in db.Customers
orderby c.CustomerName
select c)
.Include(x => x.Orders) //.Include("Orders") alternate syntax
.ToListAsync();

EF 使用相关实体的“延迟加载”,Include 使其读取每个客户的订单。

关于c# - 有没有办法为 EF 模型自动创建 CRUD(目前是 DB First),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55788563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com