标签: petapoco

映射到PetaPoco中的字典集合?

将以下内容映射到词典的方法?

Sql sql = new Sql()
.Append("SELECT Count(*) ")
.Append("FROM Custumers")
.Append("WHERE CustomerId = @0", Id)

var result = database.Fetch<Dictionary<int,DateTime>>(sql);
Run Code Online (Sandbox Code Playgroud)

我不能使用List,因为DateTime也是thr.

c#-4.0 petapoco

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

Petapoco在有一对多关系的同时删除数据?

在我的项目中,我们使用petapoco作为数据访问的ORM.但是在删除具有一对多关系的数据时我遇到了一些困难.我有两个名为user和group的表.这里一个用户可以是多个组的成员.所以用户和组表是通过使用另一个名为UserGroup的表相关联的,该表在我们的项目中没有作为单独的模型公开.那么如何使用petapoco从组中删除用户?

我的用户模型看起来像这样

[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("RoleId")]
    [Required]
    public Role Role { get; set; }

    [Column]
    public int? SchoolId { get; set; }

    [Column]
    public int? LanguageId { get; set; }

    [Column]
    public int? LevelId { get; set; }

    [Column("TitleId")]
    public Title Title { get; set; }

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

c# orm c#-4.0 petapoco

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

在DAL层中使用PetaPoco的正确方法(ASP.NET Web窗体VB.NET)

我正在尝试使用PetaPoco为ASP.NET Web表单项目生成我的DAL层.

Namespace Eva.Dal.Polls  
Public Partial Class EVAMOD_PL_CategoryDb
    Private db As Eva.Dal.Core.EvaDb

    Public Function Insert(a As EVAMOD_PL_Category) As Object
        Return db.Insert(a)
    End Function

    Public Sub New()
        db = New Eva.Dal.Core.EvaDb
    End Sub
End Class

Public Partial Class EVAMOD_PL_GL_CategoryDb
    Private db As Eva.Dal.Core.EvaDb

    Public Function Insert(a As EVAMOD_PL_GL_Category) As Object
        Return db.Insert(a)
    End Function

    Public Sub New()
        db = New Eva.Dal.Core.EvaDb
    End Sub
End Class
End Namespace
Run Code Online (Sandbox Code Playgroud)

特别是我对如何打开数据库感兴趣.在PetaPoco网站上有一个例子

// Create a PetaPoco database 
objectvar db=new PetaPoco.Database("connectionStringName");
// Show all articles    
foreach …
Run Code Online (Sandbox Code Playgroud)

vb.net asp.net orm data-access-layer petapoco

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

Peta Poco哪里有条款

我试图在petapoco中这样做

var people 
= db.Query<Person>("SELECT * FROM people").Where(p => 
 p.FirstName.Equals("George") && p.LastName.Equals("Clooney")).ToList();
Run Code Online (Sandbox Code Playgroud)

问题是它从数据库中获取整个记录集,然后对其进行过滤.我尝试了Fetch而不是查询,结果相同.

如何编写查询以便它发送查询以从数据库中获取过滤结果,而不是在Web服务器上进行过滤?

c# linq sql-server-2008 petapoco

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

如何使用PetaPOCO(Umbraco 6,MVC)修改现有数据库表(添加/删除列)

我有一个具有一些自定义功能的Umbraco CMS应用程序,为此我使用了PetaPOCO将数据存储在数据库中。我创建了POCO和一个Umbraco事件,该事件在应用程序启动时触发以创建表(如果该表不存在):

public class RegisterEvents : ApplicationEventHandler
{
    //This happens everytime the Umbraco Application starts
    protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
    {
        //Get the Umbraco Database context
        var db = applicationContext.DatabaseContext.Database;

        //Check if the DB table does NOT exist
        if (!db.TableExist("MyTable"))
        {
            //Create DB table - and set overwrite to false
            db.CreateTable<MyPetaPOCO>(false);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在不直接访问数据库的情况下修改现有数据库(我想添加一列)?我需要使用代码,因为主机尚未提供访问权限。我认为我应该能够在此ApplicationStarted重写事件中执行此操作,但我不知道如何操作。

编辑

我应该使用Somel Fluent Migrator

c# sql umbraco petapoco umbraco6

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

petapoco 查询一个 Sql Server 视图

我已经开始在 dotnetnuke 7 中使用 DAL2。我有一些复杂的查询,我已经在我的实例使用的 SQL 服务器数据库中创建了视图。从这些视图访问简单选择的最佳实践是什么。

如果我使用以下内容,那么这会绕过 dbOwner 和 ObjectQualifier:

    Public Function GetProducts_Short_Active() As IEnumerable(Of Object)
        Using ctx As IDataContext = DataContext.Instance
            Return ctx.ExecuteQuery(Of Object)(CommandType.Text, "SELECT * FROM dbo.vw_ProductList_Short_Active", Nothing)
        End Using
    End Function
Run Code Online (Sandbox Code Playgroud)

问题: 或者我应该为每个 sql-server-view 定义一个类和属性(就像我为每个表所做的那样),表名注释是视图的名称,如下所示?

<TableName("vw_ProductList_Short_Active")> _
<PrimaryKey("ProductId")> _
<Cacheable("ProductList_Short_Active", CacheItemPriority.Default, 20)> _
<Scope("PortalId")>
Public Class ProductList_Short_Active
     ''view properties go here
End Class
Run Code Online (Sandbox Code Playgroud)

编辑 1:

这篇文章似乎表明我不应该使用视图,而是使用 iEnumerable 的可忽略列扩展我的产品类,这些列代表我需要的“连接”数据记录。那是准确的吗?

sql dotnetnuke petapoco dotnetnuke-7

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

如何在单个 sql 查询中选择和更新选定的行?

我有一张名为 Car

Table car ( id int NOT NULL, plate int NOT NULL, sent_to_server bit NOT NULL ); 
Run Code Online (Sandbox Code Playgroud)

我想选择所有尚未发送到服务器的汽车

SELECT * 
FROM   car 
WHERE  sent_to_server = 0; 
Run Code Online (Sandbox Code Playgroud)

然后我应该更新我的数据库

UPDATE car 
SET    sent_to_server = 1 
WHERE  sent_to_server = 0; 
Run Code Online (Sandbox Code Playgroud)

我有多个线程所以这行不通(多个线程同时读取和写入数据库-(我使用 sql server))

如何在一个查询中执行 2 个查询?或者有更好的解决方案!?

注意:我将 C# 与 petapoco 库一起使用(如果重要的话!)

sql t-sql transactions petapoco

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

PetaPoco无法使用Guid newid主键插入记录

我正在尝试使用Peta POCO ORM,我非常喜欢它,但是有一件事我无法工作.我正在使用MS SQL和带uniqueidentifier的表作为主键.但是,当我插入新记录时,POCO会抛出一个InvalidCastException,试图将DBNull强制转换为Guid.我创造了一个简单的例子.MS SQL表定义:

    CREATE TABLE MyTable
(
    id uniqueidentifier NOT NULL DEFAULT newid(),
    name nvarchar(50) NULL,
    surname nvarchar(50) NULL,
    CONSTRAINT pk_MyTable PRIMARY KEY (id)
)
Run Code Online (Sandbox Code Playgroud)

然后在C#中我有:

[PetaPoco.TableName("MyTable")]
[PetaPoco.PrimaryKey("id")]
public class MyTable
{
    public Guid id { get; set; }
    public string name { get; set; }
    public string surname { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

最后我尝试插入新记录:

using (var conn = new SqlConnection(myConnString))
{
conn.Open()
using (var db = new PetaPoco.Database(conn))
            {
                for (int i = 0; i < 3; …
Run Code Online (Sandbox Code Playgroud)

c# sql-server petapoco

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

Petapoco 无需等待即可执行存储过程

我在 C# WepApi 上使用 PetaPoco,我必须执行一个存储过程来删除许多表上的行。删除它的行数是可变的(可以是几个或太多),因此,有时 PetaPoco 会抛出超时异常。使用 PetaPoco 是否有可能“调用”存储过程并在过程完成之前关闭连接。存储过程不返回任何值,WebApi 不需要知道它何时结束......

c# sql-server stored-procedures petapoco

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

PetaPoco 在控制台应用程序中“已经是一个开放的 DataReader”

我第一次使用 PetaPoco,并收到此错误:

An unhandled exception of type 'System.InvalidOperationException' occurred in Anonymiser.exe. Additional information: There is already an open DataReader associated with this Command which must be closed first.
Run Code Online (Sandbox Code Playgroud)

根据以下问题和给出的答案...

  1. 已经有一个与此命令关联的打开的 DataReader
  2. 如何使用 Petapoco 创建 DAL

...建议这是对同一数据库/资源​​的多个请求的问题,但他们的解决方案是每个请求使用一个数据库连接,只是我不在复杂的 web 应用程序中,我正在运行单线程控制台应用程序,我想一个 Web 应用程序需要在一个请求中进行多次查询和更新以及所有内容(类似于我正在做的事情,select, loop results, update on each row)。

我已经在下面发布了相关代码,第一位是使用泛型和反射基本上调用“查询”来从表中获取所有数据(旨在不知道我希望随机化的数据的数据库结构),然后我插入随机数据后更改每一行中的数据并“更新”每一行,就像这样......

//select all data in a table
// non-generic version :: db.query<db_table>("select * from db_tableName");                        
var typedMethod = queryMethodInfo.MakeGenericMethod(t);
var allRows = typedMethod.Invoke(db, new Object[] { "select * from " …
Run Code Online (Sandbox Code Playgroud)

c# petapoco

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

Petapoco和参数

有没有办法使用插入查询的参数?我尝试时收到以下错误.

    /// <summary>
    /// Set active survey
    /// </summary>
    public int SetSurveyActive(int brandId, int surveyId)
    {
        Sql sql = new Sql()
            .Append("INSERT INTO CF.ActiveSurvey(BrandId, SurveyId")
            .Append("VALUES(@0,@1)",brandId,surveyId);

        var result = database.Execute(sql);

        return Convert.ToInt32(result);
    }
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

c# petapoco

0
推荐指数
1
解决办法
1645
查看次数