标签: petapoco

PetaPoco查询类型参数

使用PetaPoco,如何使用类型化参数调用存储过程?在c#我这样做:

cmd.Parameters.Add("@email", SqlDbType.NVarChar).Value = email;
Run Code Online (Sandbox Code Playgroud)

petapoco

4
推荐指数
1
解决办法
4619
查看次数

ASP.Net Web API架构选择

以下是情况的示意图:

WEBSERVER <----> MIDDLEWARE SERVER <---->数据库

  • Webserver:IIS/ASP.net 4.0(WebForms和MVC)
  • 中间件服务器:WCF服务
  • 数据库服务器:Oracle

Web服务器与Oracle数据库实际分离.

我们想要做的是在Web应用程序的前端使用ASP.Net Web API,使用JQuery/KnockoutJS在新的单页应用程序中集成数据的快速绑定.因此,我们需要从数据库中的数据中使用JSON API来使用JQuery进行访问.

我们想用PetaPoco与数据库交谈.

但是,WEB API项目必须在中间件服务器上运行才能从数据库中获取数据.但是当然我们永远不能在前端使用JQuery访问WEB API.

我正在考虑在Web服务器上设置一个WEB API,它使用不同的技术连接到中间件服务器,可能就像我们现在做的那样普通的旧WCF.然而,这似乎是一种矫枉过正.

有人对如何改进这种架构有一些见解吗?我确定有人在类似的环境中使用WEB API设置了SPA应用程序.

architecture petapoco asp.net-web-api knockout.js single-page-application

4
推荐指数
1
解决办法
1586
查看次数

添加/插入petapoco与dapper的风格

我为此感到高兴:

//用peta poco插入记录

var a = new Article();
a.title="My new article";
a.content="PetaPoco was here";
a.date_created=DateTime.UtcNow;
db.Insert(a);
Run Code Online (Sandbox Code Playgroud)

我对此感到分心:

//用dapper插入记录

var a = new Article();
a.title="My new article";
a.content="PetaPoco was here";
a.date_created=DateTime.UtcNow;
string articleQuery= "INSERT INTO Article VALUES (@Title, @Content, @Date)";        
connection.Execute(articleQuery, new { Title = a.Title, Content = a.Content, Date = a.Date });
Run Code Online (Sandbox Code Playgroud)

我是dapper和peta poco的新手.可能是我没有找到更多的小巧玲珑,但我真的不喜欢我必须插入的方式.Peta poco似乎非常有意义.

能不能用这种方式做事吗?

dapper petapoco

4
推荐指数
2
解决办法
6594
查看次数

我有办法访问C#类属性吗?

我有办法访问C#类属性吗?

例如,如果我有以下类:

...
[TableName("my_table_name")]
public class MyClass
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我可以这样做:

MyClass.Attribute.TableName => my_table_name
Run Code Online (Sandbox Code Playgroud)

谢谢!

c# petapoco

4
推荐指数
2
解决办法
517
查看次数

PetaPoco 的 Query(string query,parameters) 方法是否可以防止 SQL 注入?

PetaPoco 的主页中提到 PetaPoco 的 SQL Builder(Sql 对象)可以防止 SQL 注入。但是 Query(string query,parameters) 方法可以防止 SQL 注入吗?

SQL 生成器是安全的:

var id = 123;
var a = db.Query<article>(PetaPoco.Sql.Builder
  .Append("SELECT * FROM articles")
  .Append("WHERE article_id=@0", id)
);
Run Code Online (Sandbox Code Playgroud)

但是像这样传递参数的字符串查询安全吗?

var id = 123;
var a = db.Query<article>("SELECT * FROM articles WHERE article_id=@0", id);
Run Code Online (Sandbox Code Playgroud)

.net c# sql-injection petapoco

4
推荐指数
1
解决办法
2039
查看次数

为什么PetaPoco从db返回.将ID字段7作为小数插入

执行Insert时,变量id作为对象返回.但是在我的数据库中它是一个int而在我的POCO中它是一个int但是当调用ExecuteScalar返回@@ IDENTITY的方法时,它返回数字7作为对象,但调试器认为它是一个小数.

因此,当我这样做int newID = (int)db.Insert(...)时抛出一个

InvalidCastException
Run Code Online (Sandbox Code Playgroud)

这是一个框架错误还是PetaPoco错误?

.net c# petapoco

3
推荐指数
2
解决办法
7510
查看次数

尝试从 int 映射时无效的强制转换异常?枚举?

我有一个 senario,用户想要选择他的性别,这不是必填字段。在我的 ui 中,性别列在下拉列表中,其中有两个选项MaleFemale ,并有一个可选标签Gender。但是 Gender 是我项目中的枚举,因此如果用户没有选择任何性别,则必须在数据库中输入一个空值,但不幸的是,由于某些强制转换异常,我无法做到这一点 任何机构都可以帮助我解决这个问题?

我使用 petapoco 作为我的 orm 所以我的用户实体看起来像这样

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using Helpers;
using PetaPoco;
using StructureMap;

[TableName("User")]
[PrimaryKey("UserId")]
[ExplicitColumns]
public class User
{
    [Column("UserId")]
    public int Id { get; set; }

    [Column]
    [Required]
    public Guid Identifier { get; set; }

    [Column("UserStatusId")]
    [Required]
    public UserStatus UserStatus { get; set; }

    [Column]
    [Required]
    public int RoleId { get; set; }

    [Column]
    public int? …
Run Code Online (Sandbox Code Playgroud)

c# automapper asp.net-mvc-3 petapoco

3
推荐指数
2
解决办法
4237
查看次数

使用PetaPoco插入时如何处理数据库中的DEFAULT值?

我正在转换使用SQL Server的遗留应用程序,我想将petapoco用于我的数据访问层.

表定义包含许多具有DEFAULT值的列.

我希望我的DAL在插入新记录时处理默认值.

不幸的是,使用该ResultColumn属性不是解决方案,因为当我使用UPDATE和INSERT时会丢弃该列.DEFAULT值与读取计算的字段不完全相同.

有办法处理这个吗?

.net sql-server default petapoco

3
推荐指数
1
解决办法
2049
查看次数

npoco.Insert <T>在没有AutoIncrement主键的表上失败

我有一个问题,使用nPoco的'Insert of T'方法,MySQL表定义如下:

CREATE TABLE `TestTable` (
    `Id` INT(11) NOT NULL,
    `StatusEnum` INT(11) NOT NULL,
    PRIMARY KEY (`Id`)
)
Run Code Online (Sandbox Code Playgroud)

Database.Entity定义为......

[TableName("operations.TestTable")]
[PrimaryKey("Id")]
[ExplicitColumns]
public class TestTable
{
    [Column]
    public int Id { get; set; }

    [Column]
    public Status StatusEnum { get; set; } = Status.Default;
}
Run Code Online (Sandbox Code Playgroud)

代码段:

// this works   
var foo = new TestTable { Id = 123 };
database.Execute(
    "insert into operations.TestTable (Id, StatusEnum) values (@0, @1)", 
    foo.Id, 
    foo.StatusEnum);

// this throws "Field 'Id' doesn't have a default …
Run Code Online (Sandbox Code Playgroud)

c# mysql orm petapoco npoco

3
推荐指数
1
解决办法
1338
查看次数

PetaPoco 在字符串中插入@

我想执行一行 SQL,如下所示:

conn.Open();
var db = new PetaPoco.Database(conn);
var sql = "INSERT INTO FOO (name) VALUES ( 'foo@bar.com')";
var response = db.Execute(sql);
Run Code Online (Sandbox Code Playgroud)

问题是 PetaPoco 认为 @bar 是一个参数。有没有办法告诉它不要特殊对待任何@?我超级蹩脚的解决方法是将“@”替换为“at”。我带着这种耻辱生活。

t-sql petapoco

3
推荐指数
1
解决办法
875
查看次数