Asp.Net Core和Django如何选择

参考: 戳这里
orm 区别
Django的模型API最接近于.Net Entity Framework Code First。它们都具有以下功能:

定义实体,属性和关系。
根据代码中的定义创建并填充数据库架构。
随着模型在代码中的发展,跟踪和更新数据库模式。在Django和EF中,这都称为“迁移”。
Django和EF都还提供了一个持久性转换层,该层可以将对模型对象的查询和更新转换为与持久性层相反的等效指令。在Django中,这是由管理者完成的。在EF中,IDbSet 与EF上下文一起提供了此功能。它们都可以将针对对象模型的查询转换为SQL语句。

这就是LINQ的用武之地。LINQ为EF模型提供的功能等效于Django的查询API。而在Django中,您将在Manager上调用all(),get()或filter()之类的方法并返回QuerySet,而在C#中,您将在IDbSet < T>并返回IQueryable 。在这两种情况下,您要查询的API与执行转换的基础持久层之间都存在一个层。我不知道Django是否有这个名字。在LINQ中,它们称为提供程序。

从语法上讲,C#语言提供了两种不同的编写LINQ查询的方式:一种看起来像SQL,另一种看起来像功能。Django的模型是一种面向对象的API,它使用Python语法。
最重要的区别是LINQ是C#语言功能,而Django Models是Django框架的功能,而不是Python语言的一部分。由于LINQ是一种语言功能,因此具有更广泛的适用性。例如,LINQ to Entities使您可以使用相同的语法来查询内存模型,而LINQ to XML则使您可以查询XML文档并像对待内存中的对象树一样对其进行操作。

总结:

其实EF 本身并没有什么查询API只有一些,只是LINQ的标准库中搭配强化了 EF的查询功能。
Django中的models自带的抽象API,检索,创建,修改,删除等API。
故Linq和Django的查询api、aggregate和annotate方法等功能是等效的。
不用在意惰性加载,因为这基本上是所有orm框架的特性。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值