Как настроить соединение с MySql с помощью nhibernate в сетевом ядре - PullRequest
0 голосов
/ 10 апреля 2019

Я программирую соединение с базой данных для API в сетевом ядре. Я решил запретить, но не могу подключиться к базе данных mysql, это локальная конфигурация, у меня есть следующее

это моя CreateSessionFactory

приватная статическая ISessionFactory CreateSessionFactory () { пытаться {

        string connection = "server='localhost';Database='equalsbd';UserId='root';Password='123456';port=3304";

        var db = MySQLConfiguration.Standard.ConnectionString(connection);

        return Fluently.Configure().Database(db)
                     .Mappings(m => m.FluentMappings.AddFromAssemblyOf
                      <SessionNHibernate>()).BuildSessionFactory();
    }
    catch
    {
    }

    return null;
}

это мой полный класс

открытый класс SessionNHibernate {

private static ISessionFactory sessionFactory = null;
private static ISession session = null;

private static ISessionFactory SessionFactory
{
    get
    {
        if (SessionFactory == null)

            sessionFactory = CreateSessionFactory();

        return sessionFactory;

    }

}

public static ISession Session
{
    get { return session; }
}
public static ISession OpenSession() {
    try
    {
        session = SessionFactory.OpenSession();
        return session;
    }
    catch (Exception ex)
    {
        var p = ex;
        return session;
    }
}

public static void CloseSession()
{
    session.Close();
}
private static ISessionFactory CreateSessionFactory()
{
    try
    {


        string connection = "server='localhost';Database='equalsbd';UserId='root';Password='123456';port=3304";

        var db = MySQLConfiguration.Standard.ConnectionString(connection);

        return Fluently.Configure().Database(db)
                     .Mappings(m => m.FluentMappings.AddFromAssemblyOf
                      <SessionNHibernate>()).BuildSessionFactory();
    }
    catch
    {
    }

    return null;
}
  }

1 Ответ

0 голосов
/ 12 апреля 2019

первое изменение, которое я сделал, было изменить

    private static ISessionFactory sessionFactory = null;

на

    private static ISessionFactory _sessionFactory = null;

, чтобы избежать путаницы

второе - обновить пользовательскую карту, изменив ее частнуюсвойство для защищенного, поскольку оно по какой-то причине является закрытым, соединение не может считывать атрибуты

, оставляя таким образом

этот

 public class Usuarios 
{
    public virtual long idUsuarios { get; private set; }
    public virtual string Usuario { get; private set; }
    public virtual string Password { get; private set; }
    public virtual string Perfiles_idPerfiles { get; private set; }

   public static List<Usuarios> ListaUsuario() {

        using (var session = SessionNHibernate.OpenSession() )
        {
            return session.Query<Usuarios>().ToList();
        }
    }
}

правильным способом

  public class Usuarios 
{
    public virtual long idUsuarios { get; protected set; }
    public virtual string Usuario { get; protected set; }
    public virtual string Password { get; protected set; }
    public virtual string Perfiles_idPerfiles { get; protected set; }

   public static List<Usuarios> ListaUsuario() {

        using (var session = SessionNHibernate.OpenSession() )
        {
            return session.Query<Usuarios>().ToList();
        }
    }
}

при этом ваше подключение к mysql будет работать или с любой другой базой данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...