Tag: petapoco

Petapoco:操作可能破坏运行时的稳定性

我正在尝试使用Petapoco的多poco查询。 代码在运行.NET 4.6.1的本地计算机上正常工作,但在部署到我正在使用的运行.NET 4.5的主机时抛出System.Security.VerificationException 。 来自PetaPoco / Database.cs的Snipppet:2253 while (true) { TRet poco; try { if (!r.Read()) break; poco = factory(r, cb); // <– The exception happens here } catch (Exception x) { if (OnException(x)) throw; yield break; } if (poco != null) yield return poco; else bNeedTerminator = true; } “cb”是映射pocos的回调,但是为了参数的缘故,我只是返回通过的对象: public Person MapRow(Person […]

PetaPoco – 设置事务隔离级别

使用PetaPoco,您可以进行事务管理,执行以下操作: var newObject = new NewObject(); var newObjectId = 1; using (var scope = db.GetTransaction()) { newObject = db.SingleOrDefault(“SELECT * FROM tblNewObject WHERE Id = @0”, newObjectId); scope.Complete(); } 虽然这对于管理事务更新时的管理非常有用,但是控制事务的隔离级别与使用传统SQL连接执行此操作的方式类似: TransactionOptions transOptions = new TransactionOptions() { IsolationLevel = IsolationLevel.ReadUncommitted }; using (new TransactionScope(TransactionScopeOption.Required, transOptions)) { //here be transactions } 在PetaPoco中, GetTransaction返回一个新的Transaction,使用该特定的构造函数调用BeginTransaction 。 在这种情况下,BeginTransaction使用.NET的IDbConnection.BeginTransaction() – 它具有提供事务隔离级别的重载。 […]

PetaPoco更新了winforms中的修改记录

我有这个代码: namespace PetaPocoTest { public partial class Form1 : Form { PetaPoco.Database db = new PetaPoco.Database(“PgConnection”); IEnumerable allCustomers; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { allCustomers = db.Query(“SELECT * FROM customers”); mGrid.DataSource = allCustomers .ToList(); } private void saveButton_Click(object sender, EventArgs e) { foreach (var a in allCustomers) { db.Save(“customers”, […]

如何使用Npoco FetchOneToMany?

我试图使用Npoco但遇到了FetchOneToMany的一些问题 我有一个连接2个表的sql语句,我输出所有列。 [TableName(“TableA”)] [PrimaryKey(“Id”)] public class TableA { public int Id { get; set; } public DateTime EffectiveDate { get; set; } public IList TableBs { get; set; } } [TableName(“TableB”)] [PrimaryKey(“TableBId”)] public class TableB { public int TableBId { get; set; } public int SomeNumber { get; set; } public int Id { get; […]

PostgreSQL:42883运算符不存在:没有时区的时间戳=文本

我使用的是Npgsql 3.0.3.0和PetaPoco最新版本。 当我运行此命令时: var dateCreated = DateTime.Now; // just an example var sql = new Sql(“WHERE date_created = @0”, dateCreated.ToString(“yyyy-MM-dd HH:00:00”)); var category = db.SingleOrDefault(sql); 我收到以下错误: Npgsql.NpgsqlException 42883:运算符不存在:没有时区的时间戳=文本 我理解错误消息是说我正在尝试将时间戳(日期)与文本进行比较,但对我来说,比较它们是完全有效的,因为我期望构建以下SQL语句: SELECT * FROM category WHERE date_created = ‘2017-02-03 15:00:00’ 出于性能原因,我真的不想将我的数据库列强制转换为文本。

如何使用PetaPoco库从数据库自动创建模型?

我在我的数据库中有一个表,我想用getter和setter创建一个模型类。 对于我项目中的大多数任务,我使用的是PetaPoco。 我手动创建了模型,但很少有表有很多列。 有没有办法使用PetaPoco从数据库创建模型?