问题标签 [subsonic-simplerepository]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
235 浏览

sql - 名为“Key”的 SubSonic 列

我在 MySQL 数据库中有一个名为“Key”的列。似乎

生成 SQL 代码

而不是正确的

我如何强制以后的行为(它是 SubSonic 中的错误吗?)

0 投票
3 回答
1179 浏览

.net - ORM 比较:首先是数据库还是类?

最近我一直在研究可用的基于 .NET 的 ORM。我注意到每个最终都选址在一两个营地。在一个阵营中,首先创建数据库,而 ORM 提供了一种在应用程序中访问数据库的更简单方法。在第二个阵营中,对象模型首先存在,而 ORM 有助于将对象模型保存在数据库中。

现在我不是在问或断言一个阵营是否比另一个更好。我当然可以看到每种设计方法的原因。令我沮丧的是,在我最近阅读的所有教程和“入门”文档中,没有一个只是在一开始就说“这个工具假设您从现有的数据库/对象模型开始”。对我来说,这对于您是否会使用一个 ORM 还是另一个非常重要。

因此,在阅读大量内容并创建了几个“Hello World”项目之后,我整理了一系列关于我研究过的 ORM 支持的工作流的要点。任何对这些工具有经验的人都可以告诉我我是否做了任何不正确的陈述,或者完全错过了任何真正重要的点。具体来说,我真的很想知道我对每个工具是否应该首先使用数据库模式或对象模型的假设是否正确。

链接到 SQL

  • 数据库应该首先存在
  • 仅适用于 SQL Server
  • DataContext 类用于类和数据库之间的读/写
  • DataContext 可以重新调整真实的物理类,或者可以使用动态类型根据数据库模式自动创建类型。
  • 映射默认为将表名映射到类名,将属性名映射到列名
  • 可以通过嵌入在每个类中的属性来自定义映射

亚音速(活动记录)

  • 应先创建数据库
  • 适用于多种数据库技术
  • 类是使用 T4 模板从现有数据库模式自动生成的
  • 生成类后,与数据库的连接是完全透明的
    • 调用类构造函数自动在数据库中创建记录
    • 更改属性值会自动更新数据库。

亚音速(简单存储库)

  • 类结构应该是第一位的
  • 适用于多种数据库技术
  • 创建存储库类并连接到数据库
  • 将类添加到存储库时会自动创建和更新数据库模式
    • repo.Add<MyClass>(instance);
    • 存储库使用反射来创建/更新数据库模式
    • 为每次创建一个表,为每个属性创建一个列

休眠

  • 可以先创建数据库或类结构
    • 可以创建映射以将新的类结构与现有数据库匹配
    • 映射可用于自动生成数据库模式
  • 适用于多种数据库技术
  • 最终程序集中的类具有 NHibernate 映射设置的属性,该设置将类和属性映射到表和列
  • 添加映射配置有两种方法
    • 嵌入在二进制文件中的 XML 文件,<classname>.hbm.xml
    • 添加到代码中的属性
  • 支持高级映射配置,包括一对一、一对可能、多对一、多对多、继承等..l 等...
0 投票
1 回答
301 浏览

subsonic - Subsonic 3 - 简单的存储库和创建外键

那里似乎几乎没有任何例子,所以这里是:

这是我的三个结构,但它似乎没有正确创建表,当我调用以下行时,它说 Id 未被识别:

角色权限:

允许:

角色:

0 投票
1 回答
360 浏览

c# - SubSonic 3 简单存储库问题

我正在使用 Subsonic 3 的简单存储库模式来存储和从数据库中获取值。我想知道我是否应该使用 Singleton 模式来创建SimpleRepository或应该在需要时创建一个。就像我有这样的 Person 类:

或者像这样访问回购

0 投票
2 回答
527 浏览

c# - Select 不适用于 IQueryable 但适用于 IList

我有两行代码,一个是

和另一个

唯一的区别是第二条语句ToList()是在语句之​​后调用的Where。第二条语句工作得很好。

在第一条语句中,默认的无参数构造函数被命中,而不是带有参数的构造函数。因此创建了列表,但列表中的对象使用默认值而不是 d.QualityType 进行初始化。

您可以在(方法:GetBestQualityInHistory)查看相关文件的完整来源

https://github.com/kayone/NzbDrone/blob/master/NzbDrone.Core/Providers/HistoryProvider.cs

**编辑:经过进一步调查,这似乎是一个亚音速错误,如果 LastToListOrderBy亚音速替换,则会抛出The construtor 'Void .ctor(NzbDrone.Core.Repository.Quality.QualityTypes, Boolean)' is not supported.

0 投票
1 回答
102 浏览

performance - SubSonic AddMany() 与 foreach 循环 Add()

我试图弄清楚 SubSonics AddMany() 方法是否比简单的 foreach 循环更快。我在 SubSonic 网站上浏览了一下,但在性能统计数据上没有看到太多。

我目前拥有的。(.ForEach() 只是对其进行了一些验证,除了它像 forEach(.....){ do stuff} 一样工作)

这也会改变

如果您注意到使用此方法,我会丢失已处理的记录数,这并不重要……但是能够向用户显示使用此工具移动了多少记录会很好。

所以我的问题归结为:AddMany() 使用起来会明显更快吗?有没有办法计算实际复制的记录数?如果成功,我可以假设所有记录都已处理吗?如果一条记录失败,整个过程是否失败?

提前致谢。