Nhibernate ArgumentNullException is unhandling 值不能为空 参数名称:流
本文关键字:参数 is ArgumentNullException unhandling 不能 Nhibernate | 更新日期: 2023-09-27 18:31:15
我正在使用MySql在NHibernate中尝试一个简单的项目,但是我遇到了这个异常。请帮忙。这是代码
class Cat
{
public string id { get; set; }
public string name { get; set; }
public string sex { get; set; }
public decimal weight { get; set; }
}
这是我的 Cat.hbm.xml 文件
<property name="name" type="String">
<column name="name" length="25" sql-type="varchar" not-null="true"/>
</property>
<property name="sex" column="sex" not-null="true" update="false"/>
<property name="weight" column="weight" not-null="true"/>
应用程序配置文件
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/>
</configSections>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="dialect">NHibernate.Dialect.MySQLDialect</property>
<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
<property name="connection.connection_string">Server=localhost;Database=mohit;User ID=root;Password=root</property>
<mapping assembly="Cats"/>
</session-factory>
</hibernate-configuration>
</configuration>
这是主要程序.cs
class Program
{
static void Main(string[] args)
{
Configuration cfg = new Configuration();
cfg.Configure();
ISessionFactory sessionFactory = cfg.BuildSessionFactory();
ISession session = sessionFactory.OpenSession();
ITransaction tx1 = session.BeginTransaction();
Cat c1 = new Cat();
c1.id = "cat1";
c1.name = "Fluffy";
c1.sex = "f";
c1.weight = new Decimal(3.2);
var c2 = new Cat();
c2.id = "cat2";
c2.name = "Mittens";
c2.sex = "m";
c2.weight = new Decimal(4.3);
session.Save(c1);
session.Save(c2);
tx1.Commit();
Console.WriteLine("successful");
ITransaction tx2 = session.BeginTransaction();
IList<Cat> cats = session.CreateQuery("FROM cats").List<Cat>();
foreach (Cat c in cats)
{
Console.WriteLine(c.name);
}
tx2.Commit();
session.Close();
}
请帮忙 我是Nhibernate的新手,我对此感到震惊。
似乎 MySqlConnector 中存在一个错误...
在 web.config 中添加该行
<property name="hbm2ddl.keywords">none</property>
您可以在以下链接中找到一些详细的解决方案
Fluent Nhibernate:无法创建与MySQL的数据库连接
冬眠论坛
经过3天的挖掘,终于找到了解决方案。
将 NHibernate 属性 hbm2ddl.keywords 设置为 None。像下面一样this._NHConfig.SetProperty("hbm2ddl.keywords", "none");
您也可以通过web.config进行,如上面的答案。