gpt4 book ai didi

.net - NHibernate:如何解决这个 "dialect"配置问题

转载 作者:行者123 更新时间:2023-12-04 10:30:48 26 4
gpt4 key购买 nike

遇到的问题

在运行时,我总是得到以下 NHibernate.MappingException :

"Could not compile the mapping document: GI.InventoryManager.CYB.Mappings.Part.hbm.xml"

是的,它的构建操作设置为 Embedded Resource . InnerException 说:
"Could not find the dialect in the configuration"

必填信息

这是我的配置文件 hibernate.cfg.xml :
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="connection.connection_string">
Server=(local);initial catalog=GI_IM_CYB;Integrated Security=SSPI
</property>
<property name="adonet.batch_size">10</property>
<property name="show_sql">false</property>
<property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
<property name="use_outer_join">true</property>
<property name="command_timeout">60</property>
<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
</session-factory>
</hibernate-configuration>

这实际上是 Configuration_Templates 文件夹中的复制粘贴,我只更改了以下信息:
Session Factory: "Removed the NHibernate.Test namespace and let the property for itself"
Dialect: "From MsSql2000Dialect To MsSql2005Dialect"
Connection_String: "I changed the Initial Catalog attribute to input my own database name"
Factory Class: "From LinFu to Castle"

这是我在代码中使用它的方式:
private void configBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) {
Configuration c = new Configuration();
c.AddAssembly(typeof(Part).Assembly);
lock (_sessionFactory) {
_sessionFactory = c.BuildSessionFactory();
}
}

可选信息
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true" assembly="GI.InventoryManager.CYB" namespace="GI.InventoryManager.CYB.Types">
<class name="Part" table="Parts" lazy="true">
<id name="Id" column="part_id">
<generator class="native"/>
</id>
<properties name="Description"/>
<properties name="Number"/>
<properties name="InStockQty"/>
<properties name="Cost"/>
</class>
</hibernate-mapping>


public class Part {
#region Private Members

private string _description;
private string _number;

#endregion
#region Constructors

/// <summary>
/// Initializes an instance of the GI.InventoryManager.CYB.Types.Part class.
/// </summary>
public Part() { }

#endregion
#region Properties

/// <summary>
/// Gets or sets the description of this part.
/// </summary>
public virtual string Description {
get {
return _description;
} set {
if (!string.IsNullOrWhiteSpace(value))
_description = value.Trim();
}
}

/// <summary>
/// Gets the underlying datastore unique identifier.
/// </summary>
public virtual int Id { get; private set; }

/// <summary>
/// Gets or sets the user-defined number.
/// </summary>
public virtual string Number {
get {
return _number;
} set {
if (!string.IsNullOrWhiteSpace(value))
_number = value.Trim();
}
}

/// <summary>
/// Gets or sets the in-stock quantity.
/// </summary>
public virtual int InStockQty { get; set; }

/// <summary>
/// Gets or sets the cost.
/// </summary>
public virtual double? Cost { get; set; }

/// <summary>
/// Gets the inventory value for this part.
/// </summary>
/// <remarks>
/// <para>
/// This read-only property returns the product of <see cref="T:InStockQty"/> and <see cref="Cost"/>.
/// In case the <b>Cost</b> property does not have a value, zero is returned.
/// </para>
/// </remarks>
public double InventoryValue {
get {
if (Cost.HasValue)
return InStockQty * Cost.Value;
return 0.0;
}
}

#endregion
#region Methods



#endregion
}

环境
  • window 7 专业版;
  • Visual Studio 2010,面向 .NET 4.0;
  • NHibernate 3.0.0.GA;
  • SQL Server 2005。

  • 问题

    我已经尝试将 dialect 属性放在配置的行上,但它都不起作用。

    如何解决我遇到的这个方言问题?

    最佳答案

    对我来说看起来没问题......你看过这些相关的问题吗:

  • nhibernate-could-not-find-oracle-dialect-in-configuration解决办法:调用configuration.Configure()添加映射文件前
  • nhibernate-and-sqlite-could-not-compile-the-mapping-document解决方法:复制hibernate.cfg.xml到输出
    目录

  • 这些是容易犯的错误,可能会引发给定的异常。

    关于.net - NHibernate:如何解决这个 "dialect"配置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4633459/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com