GithubHelp home page GithubHelp logo

kogel.dapper.extension's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kogel.dapper.extension's Issues

lambda表达式解析的代码问题

工程:Kogel.Dapper.Extension.Mssql
文件:BaseExpressionVisitor.cs
代码行数:517
protected override Expression VisitConstant(ConstantExpression node)
if (FieldName != null)
这个判断有问题。对于u=>true这样的lambda表达式解析错误。

对于FieldName的判断要改成
if(!string.IsNullOrEmpty(FieldName))
才能正常。

SqlMapper.cs - GUID

The DynamicParameters with GUID are not working.
q = conn.CommandSet<ContactModel>() .Insert(new ContactModel { ContactKey = Guid.NewGuid(), FirstName = "...", });

I think this is the reason:

`static SqlMapper()
{
//Register Guid Resolution
SqlMapper.RemoveTypeMap(typeof(Guid));
SqlMapper.AddTypeHandler(typeof(Guid), new GuidTypeHanlder());

 SqlMapper.RemoveTypeMap(typeof(Guid[]));
 SqlMapper.AddTypeHandler(typeof(Guid[]), new GuidArrTypeHanlder());

}`

cannot be used as a parameter value

调用dbConnection.QuerySet().Where(expression).Get()的时候报错
The member Param_000_ of type <>f__AnonymousType0`1[[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]] cannot be used as a parameter value。
使用的版本是:.net core 3.1 Kogel.Dapper.Extension.MySql 3.2.2.3

一个类型转换的bug

环境:MySQL5.7,Net Standard 2.0,Dapper1.60.6,Kogel3.1.5
复现:表Man字段Sex类型tinyint(1),有一条数据【2】,实体ManModel属性Sex类型SByte
var mModelList = conn.QuerySet().PageList(1, 10);
var mModel = mModelList[0];//此时mModel.Sex的值为【1】

继承类查询问题

我有一个表 ,然后有个视图,继承于这个表,然后 用视图去查询的时候 sql语句的字段绑定到了 基类上面去了

`

public class VIPClassProGressInfo{
public int UserID { get; set; }
}
public class V_VIPSignInInfo : VIPClassProGressInfo{
public string Name{ get; set; }
}

`

查询语句

`
var query = await connection.QuerySet<V_VIPSignInInfo>();

query = query.Where(c => c.UserID == 0);

var page = query.PageList(1, 10);
`

生成的sql语句

exec sp_executesql N'SELECT COUNT(1) FROM [VIPClassProGressInfo] WHERE 1=1 AND 1=1 AND (([VIPClassProGressInfo].[UserID] = @VIPClassProGressInfo_UserID_0_1)) ',N'@VIPClassProGressInfo_UserID_0_1 int',@VIPClassProGressInfo_UserID_0_1=0

Kogel.Dapper.Extension.Mssql Guid的装箱拆箱代码有问题

位于工程 Kogel.Dapper.Extension.Mssql 中,其他库未测试。
文件SQLMapper.extension.cs 中的 GuidTypeHanlder类
数据库中的guid字段(比如mssql的字段为 uniqueidentifier 类型),那么最新的3.2.0.2版本是有问题的。

SetValue 和Parse方法对 参数的处理都不对。
需要改成如下:
public override void SetValue(IDbDataParameter parameter, Guid value)
{
parameter.Size = 10;
parameter.DbType = DbType.Guid;
//parameter.Value = value.ToString();
parameter.Value = value;
}
public override Guid Parse(object value)
{
if (value.GetType().Name == "Guid")
{
return (Guid)value;
}
else
{
return Guid.Parse(value.ToString());
}
}

以上改动在我的项目中运行通过。

查询的时候,类型是Guid会报转换错误

查询的时候,类型是Guid会报转换错误,应该是DbType为String的原因

`public class GuidTypeHanlder : SqlMapper.TypeHandler
{
public override void SetValue(IDbDataParameter parameter, Guid value)
{
parameter.Size = 10;
parameter.DbType = DbType.String;
//parameter.Value = value.ToString();
parameter.Value = value;
}

    public override Guid Parse(object value)
    {
        //return Guid.Parse((string)value);
        return Convert(value);
    }

    internal static Guid Convert(object value)
    {
        if (value.GetType().Name.Contains("Guid"))
        {
            return (Guid)value;
        }
        else
        {
            return Guid.Parse(value.ToString());
        }
    }
}

public class GuidArrTypeHanlder : SqlMapper.TypeHandler<Guid[]>
{
    public override void SetValue(IDbDataParameter parameter, Guid[] value)
    {
        parameter.Size = 10;
        parameter.DbType = DbType.String;
        parameter.Value = value;
    }

    public override Guid[] Parse(object value)
    {
        List<Guid> guids = new List<Guid>();
        foreach (var item in value as string[])
        {
            guids.Add(GuidTypeHanlder.Convert(value));
        }
        return guids.ToArray();
    }
}`

希望支持sqlite

希望支持sqlite,现在用mysql挺稳定的。有项目需要用sqlite

导航属性名字相同问题

当主表A和关联表B的字段相同时,其中B为导航属性,当获取数据时,导航表B中的字段和主表A中的字段相同时没有赋值,如:主表A有InstrId,关联表也有InstrId,作为导航属性的B表InstrId该列未赋值

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.