小编tum*_*ivn的帖子

使用PetaPoco Database.Insert <T>插入mysql时出现问题

我有一个小项目使用PetaPoco重新实现ASP.NET的成员资格提供程序,角色提供程序和配置文件提供程序.每个表都有两个常用字段:name和lower_name.当我尝试使用Database.Insert()将新记录插入数据库时​​,我遇到了一个问题,lower_name字段无法插入.

例如,我们有一个名为Category的表

CREATE TABLE `category` (
  `name` varchar(100) NOT NULL,
  `lowered_name` varchar(100) NOT NULL,
  PRIMARY KEY (`lowered_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

和一个类别实体:

[TableName("category"), PrimaryKey("lowered_name")]
    public class Category
    {
        [Column("name")]
        public string Name { get; set; }
        [Column("lowered_name")]
        public string LoweredName { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

我使用PetaPoco插入如下的新类别

var name = Guid.NewGuid().ToString(); var cat = new Category(){Name = name,LoweredName = name.ToLower()};

        var db = new Database("Test");

        db.Insert(cat);

        var retrievecat = db.SingleOrDefault<Category>("where lowered_name like @0", name.ToLower());

        Console.WriteLine(retrievecat.LoweredName);

        Assert.IsTrue(retrievecat != null);
Run Code Online (Sandbox Code Playgroud)

但是,此代码不起作用,创建了新记录但记录的reduced_name字段为空.当我将db.Insert(cat)更改为:

db.Execute("insert into …
Run Code Online (Sandbox Code Playgroud)

mysql petapoco

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

标签 统计

mysql ×1

petapoco ×1