1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/bouyei-Bouyei.DbFactory

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
readme.md

Модуль объяснения


#Bouyei.DbFactory на основе .NET Framework 4.6.1+

#Bouyei.DbFactoryCore на основе .NET Core 2.2+

#Bystd.DbFactory на основе .NET Standard 2.0+

Пакет


Пакет NuGet
Bouyei.DbFactory NuGet
Bouyei.DbFactoryCore NuGet
Bystd.DbFactory NuGet

Пример использования Linq-выражений или прямого выполнения SQL-запросов

string connectionString = "Data Source=.;Initial Catalog=testdb;User ID=sa;Password=bouyei;";

IAdoProvider adoProvider = AdoProvider.CreateProvider(connectionString);

var rt = adoProvider.Query(new Parameter()
{
    CommandText = "select * from MemUser"
});

// Удаление
var del = adoProvider.Delete<user>(x => x.uname == "hkj" && (x.sex == Sex.Female || x.uage == 30));

// Динамическая вставка объекта
var irt = dbProvider.Insert<User>(x => new
{
    uname = "hello",
    id = 11
});

// Динамическое обновление объекта
var urt = dbProvider.Update<User>(x => new
{
    uname = "bouyei_hello"
}, w => w.id == 11);

// Вставка с использованием DbParameter для полей типа blob и других случаев
var p = dbProvider.InsertParameter<User>(new User()
{
    uname = "bouyei",
    uage = 33,
    score = 23.44f
});

// Запрос с использованием like '%bouyei%'
var users = adoProvider.Query<user>(x => x.name.Contains("bouyei"));

// Разбиение на страницы, возврат динамических объектов
string[] orderbyColumn = new string[] { "uname" };
var qrt = dbProvider.QueryOrderBy<User>(x => true,
c => new { c.uname, c.id }, /* динамические столбцы возвращаются */
orderbyColumn, SortType.Desc, 0, 10);

foreach (DataRow dr in rt.Result.Rows)
{
    Console.WriteLine(string.Join(",", dr.ItemArray));
}

// Массовая загрузка данных
fc3d[] fc = new fc3d[]
{
    new fc3d() { fname = "dd", fcode = 121 },
    new fc3d() { fname = "sd", fcode = 23 },
    new fc3d() { fname = "个", fcode = 2323 }
};

var param = new CopyParameter<Array>(fc);
param.TableName = "fc3d";
var rt = adoProvider.BulkCopy(param);

**Наследование TableMapper для реализации ORM сущностей**

Пример использования 1:

private void execute()
{
    UserDto user = new UserDto()
    {
        UserName = "bouyei"
    };
    user.Insert(user);
}

Пример использования 2:

public class DbMapperService : BaseEntity<UserDto>
{
    public int Insert(UserDto user)
    {
       return Insert(user);
    }

    public int UpdateDo(UserDto dto, Expression<Func<UserDto, bool>> whereClause)
    {
        return Update(dto, whereClause);
    }
}

[MappedName("db_user")]
public class UserDto : BaseEntity<UserDto>
{
    public string UserName { get; set; }

    [Ignore]
    public string Pwd { get; set; }
}

public class BaseEntity<T> : TableMapper<T> where T : class
{
    public BaseEntity()
    {
        string connstr = "Host=127.0.0.1;Port=5432;User id=postgres;Password=bouyei;Database=postgres;";
        var provider = AdoProvider.CreateProvider(connstr, FactoryType.PostgreSQL);
        Initilize(provider);
    }
}

**Использование выражений для генерации SQL-скриптов**

Группировка:

string sqlgroupby = sqlProvider.Select<User>().Count().From<User>()
    .Where(x => x.uage == 1).GroupBy<User>().SqlString;

Использование IN:

string[] values = new string[] { "a", "b" };
var inSql = sqlProvider.Select<User>().From().Where(x => values.Contains(x.uname)).SqlString;

LIKE с подстановочным знаком в начале:

var beginSql = sqlProvider.Select<User>().From().Where(x => x.uname.StartsWith("bouyei") || x.uname.StartsWith("bb")).SqlString;

LIKE с подстановочными знаками в конце:

var endSql =
``` ```
sqlProvider.Select<User>().From().Where(x => x.uname.EndsWith("bouyei")).SqlString;

//select count(*) from user where id=1
string commandText = sqlProvider.Select<User>(new Count("*")).From<User>().Where(x=>x.id==1).SqlString;

//function 
string sqlfun = sqlProvider.Select<User>(new Max("age")).From<User>().Where(x=>x.uage>20).SqlString;

//order by
var osql = sqlProvider.Select<User>().From<User>().OrderBy(SortType.Asc, "name").SqlString;

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

.NET унифицированная библиотека интерфейсов доступа к базе данных, поддерживает SQL Server, DB2, Oracle, MySQL, PostgreSQL, SQLite и другие различные базы данных. Она упрощает операции GRUD с базой данных и лямбда-выражения для предложений where. Развернуть Свернуть
Apache-2.0
Отмена

Обновления (9)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/bouyei-Bouyei.DbFactory.git
git@api.gitlife.ru:oschina-mirror/bouyei-Bouyei.DbFactory.git
oschina-mirror
bouyei-Bouyei.DbFactory
bouyei-Bouyei.DbFactory
master