C# FluentNHibernate-无法执行查找[SQL:SQL不可用]
我只是尝试使用FluentNhibernate/C#访问数据,在尝试执行sql查询时收到以下错误消息。我将非常感谢任何帮助 异常:NHibernate.Exceptions.GenericADOException:无法 执行查找[SQL:SQL不可用]-->System.ArgumentException: 值“SampleProject.User”不是“SampleProject.User”类型,并且 无法在此常规集合中使用。参数名称:值位于 System.ThrowWhelper.ThrowWrongValueTypeArgumentException(对象值, 键入targetType)在 System.Collections.Generic.List`1.System.Collections.IList.Add(对象 项目)位于NHibernate.Util.ArrayHelper.AddAll(IList-to,IList-from)C# FluentNHibernate-无法执行查找[SQL:SQL不可用],c#,mysql,fluent-nhibernate,fluent-nhibernate-mapping,C#,Mysql,Fluent Nhibernate,Fluent Nhibernate Mapping,我只是尝试使用FluentNhibernate/C#访问数据,在尝试执行sql查询时收到以下错误消息。我将非常感谢任何帮助 异常:NHibernate.Exceptions.GenericADOException:无法 执行查找[SQL:SQL不可用]-->System.ArgumentException: 值“SampleProject.User”不是“SampleProject.User”类型,并且 无法在此常规集合中使用。参数名称:值位于 System.ThrowWhelper.Throw
在NHibernate.Impl.SessionImpl.List(CriteriaImpl-criteria,IList 结果)--内部异常堆栈跟踪的结束---at NHibernate.Impl.SessionImpl.List(标准Impl标准,IList结果) 在NHibernate.Impl.CriteriaImpl.List(IList结果)处 NHibernate.Impl.CriteriaImpl.ListT 我的脚本如下所示。FluentMappings似乎有问题
namespace SampleProject
{
public class NHibernateHelper
{
public NHibernateHelper()
{
InitializeSessionFactory();
}
private static ISessionFactory m_SessionFactory;
public static ISessionFactory SessionFactory
{
get
{
if (m_SessionFactory == null)
InitializeSessionFactory();
return m_SessionFactory;
}
}
private static void InitializeSessionFactory()
{
try
{
string connectionString = "";
connectionString = "Server=localhost;Port=3306;Database=myDB;Uid=testUser;Pwd=123; Allow Zero Datetime=true;Convert Zero Datetime=true; CharSet=utf8";
m_SessionFactory = Fluently.Configure().Database(
MySQLConfiguration.Standard
.ConnectionString(connectionString))
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<GetData>())
.ExposeConfiguration(cfg => cfg.SetProperty("connection.release_mode", "on_close"))
.BuildSessionFactory();
}
catch (FluentConfigurationException e)
{
throw e.InnerException;
}
}
public static ISession OpenSession()
{
return SessionFactory.OpenSession();
}
}
}
namespace-SampleProject
{
公共类NHibernateHelper
{
公共NHibernateHelper()
{
初始化SessionFactory();
}
私人静态ISessionFactory m_SessionFactory;
公共静态ISessionFactory会话工厂
{
得到
{
if(m_SessionFactory==null)
初始化SessionFactory();
返回m_SessionFactory;
}
}
私有静态void InitializeSessionFactory()
{
尝试
{
字符串连接字符串=”;
connectionString=“服务器=localhost;端口=3306;数据库=myDB;Uid=testUser;Pwd=123;允许零日期时间=true;转换零日期时间=true;字符集=utf8”;
m_SessionFactory=fluntly.Configure().Database(
MySQLConfiguration.Standard
.连接字符串(连接字符串))
.Mappings(m=>m.FluentMappings.AddFromAssemblyOf())
.ExposeConfiguration(cfg=>cfg.SetProperty(“connection.release\u mode”、“on\u close”))
.BuildSessionFactory();
}
捕获(FluentConfigurationException e)
{
抛出e.InnerException;
}
}
公共静态会话OpenSession()
{
返回SessionFactory.OpenSession();
}
}
}
//////////////
public class User
{
public virtual int UserID { get; set; }
public virtual string Name { get; set; }
}
public class UserMap : ClassMap<User>
{
public UserMap()
{
Id(x => x.UserID ).Column("user_id");
Map(x => x.Name).Column("name");
Table("User_master");
}
}
公共类用户
{
公共虚拟int用户标识{get;set;}
公共虚拟字符串名称{get;set;}
}
公共类UserMap:ClassMap
{
公共用户映射()
{
Id(x=>x.UserID).Column(“用户Id”);
Map(x=>x.Name).Column(“Name”);
表(“用户/主机”);
}
}
//执行sql查询
using (var session = NHibernateHelper.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
var userM = session.CreateCriteria<User>("usr").List<User>();
}
}
使用(var session=NHibernateHelper.OpenSession())
{
使用(var transaction=session.BeginTransaction())
{
var userM=session.CreateCriteria(“usr”).List();
}
}