问题标签 [petapoco]
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.
c# - 如何使用 PetaPoco 库从数据库自动创建模型?
我的数据库中有一个表,我想为它创建一个带有 getter 和 setter 的模型类。对于我项目中的大多数任务,我使用的是 PetaPoco。我手动创建了模型,但很少有表有很多列。
有没有办法使用 PetaPoco 从数据库创建模型?
c# - PetaPoco:获取复合对象
我对 PetaPoco 很熟悉(顺便说一句,它看起来很棒),但这里有一个拦截器,我很好奇我是否可以在 PetaPoco 中做到这一点。
我想做的是将数据库中的一行映射到一个复合对象中。我认为这个例子会让事情变得清晰。
假设我们在数据库中有一个名为“Customers”的表,行看起来像这样:
我想使用这样的模型:
所以我们必须在c#中使用不同的对象,但它只有一个实体(一个Id,数据库中的一行)。
我可以使用 PetaPoco 实现这样的映射吗?
c# - 使用 PetaPoco 动态和 WebAPI 返回 Json
是否可以使用 PetaPoco 动态查询在 ASP.net WebAPI 中返回 Json?
//WebAPI控制器
我收到一个错误
要成为 XML 可序列化的,从 IEnumerable 继承的类型必须具有 Add(System.Object) 的实现
nhibernate - NHibernate vs petapoco 加载机制
我很难理解 NHibernate 的 petapoco 加载机制。实际上我做了一个测试来比较两者在查询中的行为。
我的班级如下:
UserTest.cs
具有以下属性:
当我User.Load
在 NHibernate 中执行 a 时,我观察到它DoSomeOtherWork
从未被调用,而在 PetaPoco 中,当我从加载中执行查询时,User
例如Connection.db.Fetch<UserTest>(...)
or Connection.db.Query<UserTest>(...)
,我可以看到它DoSomeOtherWork
被调用。
为什么呢?
有没有办法DoSomeOherWork
在使用 PetaPoco 时避免调用,使其具有与 NHibernate 相同的行为?我t want to use
没有 PetaPoco.Ignore as I need to get and set the
CustomerID`。
mysql - 防止 PetaPoco 将变量识别为输入参数
我在 C# 应用程序中使用 PetaPoco.Core 4.0.3 来访问 MySql 数据库。
我正在尝试创建一个使用变量的查询,但我不希望 PetaPoco 将它们视为输入参数。这是一个无用的查询,只是为了说明我的意思:
当我这样做时,PetaPoco 将 @num 识别为输入参数,我收到以下错误:
指定了参数“@num”,但所有传递的参数都没有具有此 >name 的属性(在“SET @num := 0; SELECT @num;”中)
我还尝试通过将 @ 字符加倍来逃避它
但后来我收到
必须定义参数“@num”。
有没有办法在查询中声明和使用变量,而 PetaPoco 不会将它们识别为输入参数?
提前致谢
保罗
c# - PetaPoco 分页查询生成改进
我是 PetaPoco 的忠实粉丝,当我看到其中编写的代码时,我感到非常惊讶。但是,在将它用于现实生活项目时,我遇到了一个问题,其中我有一个类似这样的查询:
ResultCategoryName 是用Case When
语句“飞”生成的。这是一个相当简单的查询。现在,如果您曾经注意到用 PetaPoco 编写的代码,您会看到它包含了您的语句并附加了行号函数。所以你的查询变成:
发生这种情况时,您会收到 Sql 错误Invalid column name
“ResultCategoryName”。我修改了方法'BuildPageQueries<T>'
,在if (_dbType == DBType.SqlServer || _dbType == DBType.Oracle)
生成实际 SQL 的地方,我将其修改为:
这产生了查询:
这行得通!:)。但是我需要知道这是否是正确的方法,或者有没有更好的方法。
asp.net-mvc-3 - MVC3 Controller not recongnising base controller with Ninject dependency
I've hooked up Ninject (correctly) to bind NLog. Here is my RegisterService method in my NinjectMVC3.cs
I'm trying to port over to PetaPoco and have created a base controller here:
When I inherit my base controller like so:
and try to run a build I'm getting a
'BaseController' does not contain a constructor that takes 0 arguments
What am I doing wrong? I thought Ninject would resolve the dependency on the constructor?
.
.net-3.5 - PetaPoco 数据库类应该在每次请求时创建一次还是在每次需要时创建?
使用 PetaPoco,我应该如何处理Database
类的创建?我的应用程序可能会使用各种存储库(不完全是 DDD 存储库,更像是网关存储库)来封装查询。
由于我将有多个存储库需要访问同一个数据库连接,我正在考虑创建一个基类,在构造函数中创建数据库类并调用Dispose
其析构函数,并在所有派生类中简单地调用这个对象,所以我认为在这种情况下我不需要 using 块(因为当类超出范围时,它将关闭数据库本身)。
我还考虑在Application_BeginRequest
方法上在 global.axax 中创建数据库对象,以便它在每个页面上都可用,但我不完全确定它是如何工作的(我想我需要某种DatabaseManager
实例化它的类?我只见过这种方法与 NHibernate 和 RavenDB 之类的东西一起使用),这似乎将数据库对象的使用推送到 ASPX 页面本身,而不是通过存储库/数据层类,这看起来很臭。
任何建议这些方法中的哪一种(如果有的话)最有效?我还看到 PetaPoco 支持“共享连接”,所以我也想看看这是否可以最大限度地减少与数据库的打开连接数?
.net - 如何从数据库中更新 PetaPoco 模型?
我在我的 ASP.NET 4.0 项目中使用PetaPoco Micro-ORM 。
PetaPoco T4 模板 (Database.tt) 生成了一个文件 Database.cs。我想更改这个自动生成的文件的名称和位置,其中包含到数据库表的映射。因此,我将此文件复制到我的解决方案资源管理器的 APP_DATA 文件夹中,并将其重命名为 EmployeePOCO.cs。
问题是当我想从数据库中更新模型(EmployeePOCO.cs)时。每次我删除旧的 Database.cs 文件并使用 Database.tt 重新生成它。然后我将这个新的 Database.cs 文件复制到 APP_DATA 并将其重命名为 EmployeePOCO.cs。
有没有办法更新现有的 EmployeePOCO.cs 文件?
c# - 如何循环通过 var 填充 DropDown?
我正在使用 ASP.NET/C# 4.0 和 PetaPoco Micro ORM。
PetaPoco 代码检索var中的年份列表。现在我想用这个var中的项目填充一个 ASP.NET DropDown 控件。
PetaPoco 是否以更少的代码提供了一些东西来做到这一点?或者,我如何遍历var并在 DropDown 中添加项目?