小编Voi*_*Ray的帖子

精巧的多映射问题

继续运行"如果使用多映射API,请确保在下面的代码块中设置了除了Id之外的其他键的splitOn参数"错误:

var accounts = DbConnection.Query<Account, Branch, Application, Account>(
            "select Accounts.*, SplitAccount = '', Branches.*, SplitBranch = '', Applications.*" +
            " from Accounts" +
            "    join Branches" +
            "       on Accounts.BranchId = Branches.BranchId" +
            "    join Applications" +
            "       on Accounts.ApplicationId = Applications.ApplicationId" +
            " where Accounts.AccountId <> 0",
            (account, branch, application) =>
                {
                    account.Branch = branch;
                    account.Application = application;
                    return account;
                }, splitOn : "SplitAccount, SplitBranch"
            ).AsQueryable();
Run Code Online (Sandbox Code Playgroud)

我正在使用SplitAccount和SplitBranch for splitOn作为解决方法.

我错过了什么?

谢谢

编辑:

我已经清理了一下我的测试,下面是一个轻量级的类和一个新的查询:

public class AccountLight
{
    public int …
Run Code Online (Sandbox Code Playgroud)

dapper

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

Vuex - 仅对操作公开突变

我想使用 Vuex 来存储有关我的客户端 - 服务器通信的状态,例如搜索逻辑:

// status is either synching|synched|error
state: { query:"", result:[], status:"synching" } 
Run Code Online (Sandbox Code Playgroud)

我实现了搜索操作。动作只能通过突变修改状态:

function search(context, query) {
    context.commit("query", query);
    context.commit("status", "synching");

    // some asynch logic here
    ...
        context.commit("result", result);
        context.commit("status", "synched");
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是,现在这些突变也暴露给了我的组件,它们现在能够使我的状态不一致。是否可以隐藏组件的突变?

visibility action mutation vue.js vuex

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

什么可能导致Dapper演员失败?

我正在使用Dapper执行一个非常简单的查询:

const string query =
          "SELECT measurement From Table;";
return connection.Query<Foo>(query);
Run Code Online (Sandbox Code Playgroud)

foo定义如下:

public class Foo
{
    public object measurement { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

它完美地运作.如果我检查结果对象,Measurement是一个double.

不过,如果我明确地键入Measurement一个double:

public class Foo
{
    public double measurement { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Dapper抛出异常:

System.Data.DataException:'解析第0列时出错(measurement = 4.64518928527832 - Double)'

由于作为对象输入有效,它并不太烦人,但我想了解导致这种行为的原因.

编辑:做同样的事情,老式的方式非常好用measurement打字作为一个Double

using (connection)
            {
                connection.Open();
                var cmd = connection.CreateCommand();
                cmd.CommandText = "SELECT measurement From Table;";
                Foo foo= new Foo();
                using (IDataReader reader …
Run Code Online (Sandbox Code Playgroud)

c# oracle dapper

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

Dapper.SimpleCRUD插入没有身份的问题

我有表用户

CREATE TABLE [User](
    [Id] [int] primary key NOT NULL,
    [Username] [nvarchar](50) NULL,
    [EmailID] [nvarchar](50) NULL)
Run Code Online (Sandbox Code Playgroud)

用户类

public class User
{
    public int Id { get; set; }
    public string Username { get; set; }
    public string EmailID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

var usr=new User();
usr.Id=1;
usr.Username="jhon";
usr.EmailID="j@gmail.com";
_dbConnection.Insert<User>(usr);
Run Code Online (Sandbox Code Playgroud)

上面的代码抛出null exception.Table与身份工作正常.

堆栈跟踪:

在Dapper.SimpleCRUD.Insert [TKey](IDbConnection连接,Object entityToInsert,IDbTransaction事务,Nullable`1 commandTimeout)

错误信息:

Dapper.SimpleCRUD.dll中出现"System.Exception"类型的异常,但未在用户代码中处理其他信息:返回类型无效

c# dapper dapper-simplecrud

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

标签 统计

dapper ×3

c# ×2

action ×1

dapper-simplecrud ×1

mutation ×1

oracle ×1

visibility ×1

vue.js ×1

vuex ×1