继续运行"如果使用多映射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) 我想使用 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)
但是,现在这些突变也暴露给了我的组件,它们现在能够使我的状态不一致。是否可以隐藏组件的突变?
我正在使用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) 我有表用户
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"类型的异常,但未在用户代码中处理其他信息:返回类型无效