Coder Social home page Coder Social logo

deepumi / data.net Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 161 KB

A simple, light weight data access library for any ADO.Net providers like SQL server,Oracle & MySQL.

License: MIT License

C# 94.49% TSQL 5.51%
csharp netcore adodotnet netstandard20 ado-net orm database system-data data-net

data.net's People

Stargazers

 avatar

Watchers

 avatar  avatar

data.net's Issues

Add capacity parameter for DataParameter class.

DataParameters class will accept a length parameter which is useful when you have 5+ parameters creation, since DataParameters class is backed by List<T> class which will be allocated unnecessary arrays. And adding length constructor we can prevent this behavior and allocate how much we required in upfront.

      private const int DefaultCapacity = 4;
      
      public DataParameters() : this(DefaultCapacity) { }

       public DataParameters(int capacity)
        {
            if (capacity <= 0) capacity = DefaultCapacity;

            _parameters = new List<object>(capacity);
        }

Support Async APIs

Add following async apis

public async Task<int> ExecuteNonQueryAsync(string sql, CommandType commandType = CommandType.Text, DataParameters parameters = null, CancellationToken token = default(CancellationToken));

public async Task<T> ExecuteScalarAsync<T>(string sql, CommandType commandType = CommandType.Text, DataParameters parameters = null, CancellationToken token = default(CancellationToken));

public async Task<IDataReader> ExecuteReaderAsync(string sql, CommandType commandType = CommandType.Text,
            DataParameters parameters = null, CommandBehavior behavior = CommandBehavior.CloseConnection, CancellationToken token = default(CancellationToken));

public async Task<T> QuerySingleAsync<T>(string sql, CommandType commandType = CommandType.Text, DataParameters parameters = null,
            CommandBehavior behavior = CommandBehavior.CloseConnection, CancellationToken token = default(CancellationToken));

BeginTransaction API is no longer supported starting from Data.Net version 2+

Following methods are no longer supported starting from Data.Net 2.0.0+

  1. BeginTransaction()
  2. BeginTransaction(IsolationLevel isolationLevel)

Instead use the below alternatives.

public Database(IDbConnection connection, bool useTransaction)
public Database(IDbConnection connection, bool useTransaction, IsolationLevel isolationLevel)

Object reference not set to an instance of an object.

Steps to reproduce

public class Location
{
	public string Area { get; set; }
}

using (var db = new Database(new OracleConnection("connecitonString" )))
{
	try
	{
		var x = db.Query<Location>("SELECT 'test' as Area FROM Dual");
	}
	catch (Exception e)
	{
		
	}
}

   at Data.Net.DataRowReader.ReaderToType[T](IDataReader reader) in C:\Projects\Data.Net\Data.Net\DataRowReader.cs:line 32
   at Data.Net.Database.Query[T](String sql, CommandType commandType, DataParameters parameters, CommandBehavior behavior) in C:\Projects\Data.Net\Data.Net\Database.cs:line 127
   at Data.Net.Oracle.Test.Program.Main(String[] args) in C:\Projects\Data.Net\Data.Net.Oracle.Test\Program.cs:line 16

System.MissingMethodException: 'No parameterless constructor defined for this object.'

Following line throws exception

[TestMethod]
public void Query_Single_String()
{
  var q = _db.QuerySingle<string>("SELECT FirstName From Users_Test");
  Assert.IsTrue(q != null);
}       

Stack trace

   at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
   at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
   at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance[T]()
   at Data.Net.DataRowReader.ReaderToType[T](IDataReader reader) in DataRowReader.cs:line 24
   at Data.Net.Database.QuerySingle[T](String sql, CommandType commandType, DataParameters parameters, CommandBehavior behavior) in Database.cs:line 158
   at Data.Net.MsSql.Test.QueryTest.Query_Single_String()

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.