Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用nhibernate插入到表中_C#_.net_Sql Server 2008_Nhibernate - Fatal编程技术网

C# 无法使用nhibernate插入到表中

C# 无法使用nhibernate插入到表中,c#,.net,sql-server-2008,nhibernate,C#,.net,Sql Server 2008,Nhibernate,我只是在学习nhibernate并尝试创建第一个示例 我创建了一个空的基于服务的数据库,并编写了映射和一些代码: namespace lab { public class Skill { public virtual int Id { get; protected set; } public virtual string Description { get; set; } } } NHibernate.Connection.DriverC

我只是在学习nhibernate并尝试创建第一个示例

我创建了一个空的基于服务的数据库,并编写了映射和一些代码:

namespace lab
{
    public class Skill
    {
        public virtual int Id { get; protected set; }
        public virtual string Description { get; set; }
    }
}
NHibernate.Connection.DriverConnectionProvider NHibernate.Driver.SqlClientDriver NHibernate.dialogue.mssql2008dialogue 数据源=。\SQLEXPRESS;AttachDbFilename=C:\Users\Dmitry\Desktop\lab\lab\lab\DataBase.mdf;综合安全=真实;用户实例=True var配置=新配置; 配置Configure@C:\Users\dmitry\Desktop\lab\lab\hibernate.cfg.xml; var session=configuration.BuildSessionFactory.OpenSession; var transaction=session.BeginTransaction; var skill=新技能{Description=C}; 会话.保存技能; 事务。提交; 当我运行此命令时,总是会出现无法插入的错误:

插入技能描述值; 选择范围\标识 无效的对象名\Skill\

我没有像nhibernate自己创建表那样创建表


您能帮我找出它不工作的原因吗?

要让NHibernate创建DB架构,请在构建SessionFactory之前添加以下行:

new NHibernate.Tool.hbm2ddl.SchemaExport(configuration)
                                            .Execute(false, true, false);
此方法的签名是

public void Execute(bool script, bool export, bool justDrop);
脚本-如果这是真的,那么生成的模式脚本将写入控制台。 导出-如果这是真的,那么生成的模式脚本将针对配置的数据库运行。 justDrop-如果这是真的,那么总是被删除的表。
有关导出架构功能的更多信息,请参见。

此解决方案有效,但它会从另一个表中清除我的所有数据。我发现发生异常的根目录: 检查表中的Id列。“Id”列应递增。在“创建表”下,需要将IDENTITY设置为unique字段,如下所示:

CREATE TABLE dbo.aTable (ID_User INTEGER NOT NULL PRIMARY KEY IDENTITY(1,1), Name VARCHAR(30)) END

谢谢你的帮助。这真的很有帮助!