一个关于mappingexception的问题
小弟在此求各位大虾帮忙指点在用nibernate时
调试出现如下错误:
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
No persister for: SK.DTO.Domain.Customer
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: NHibernate.MappingException: No persister for: SK.DTO.Domain.Customer
源错误:
行 32: {
行 33: //Db.SessionFactory.EvictQueries("Customer");
行 34: Customer p = Db.Session.Get(typeof(Customer),dto.Id) as Customer;
行 35: p.User = dto.User;
行 36: p.Email = dto.Email;
源文件: F:\SK\SK\SK.DAL.Service\CustomerSrv.cs 行: 34
堆栈跟踪:
[MappingException: No persister for: SK.DTO.Domain.Customer]
NHibernate.Impl.SessionFactoryImpl.GetEntityPersister(String entityName, Boolean throwIfNotFound) +121
NHibernate.Impl.SessionFactoryImpl.GetEntityPersister(String entityName) +7
NHibernate.Event.Default.DefaultLoadEventListener.OnLoad(LoadEvent event, LoadType loadType) +114
NHibernate.Impl.SessionImpl.FireLoad(LoadEvent event, LoadType loadType) +51
NHibernate.Impl.SessionImpl.Get(String entityName, Object id) +99
NHibernate.Impl.SessionImpl.Get(Type entityClass, Object id) +26
SK.DAL.Service.CustomerSrv.Update(CustomerDTO dto) in F:\SK\SK\SK.DAL.Service\CustomerSrv.cs:34
SK.BLL.BLL.BLLCustomer.Update(CustomerDTO dto) in F:\SK\SK\SK.BLL.BLL\BLLCustomer.cs:27
SK._Default.XG_Button_Click(Object sender, EventArgs e) in F:\SK\SK\SK\Default.aspx.cs:68
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.42 --------------------编程问答-------------------- nhibernate配置如下:
<?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_name">Connection String</property>
<property name="connection.connection_string">Server=localhost;initial catalog=lhy;Integrated Security=SSPI</property>
<property name="adonet.batch_size">10</property>
<property name="show_sql">true</property>
<property name="dialect">NHibernate.Dialect.MsSql2000Dialect</property>
<property name="use_outer_join">true</property>
<property name="command_timeout">300</property>
<property name="query.substitutions">true 1,false 0,yes 'Y',no 'N'</property>
<mapping assembly="SK.DTO.Domain" />
</session-factory>
</hibernate-configuration> --------------------编程问答-------------------- 错误的语句如下:
public void Update(CustomerDTO dto)
{
//Db.SessionFactory.EvictQueries("Customer");
Customer p = Db.Session.Get(typeof(Customer),dto.Id) as Customer;
p.User = dto.User;
p.Email = dto.Email;
Db.TransUpdate(p);
} --------------------编程问答-------------------- DTO.Domain.xml语句如下:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="SK.DTO.Domain" assembly="SK.DTO.Domain">
<class name="Customer" table="customers" proxy="Customer">
<cache usage="read-write" />
<id name="Id" column="customer_id" type="String" not-null="true" length="20" >
<generator class="assigned"/>
</id>
<property name="User" column="customer_user" type="String" not-null="true" length="20"/>
<property name="Email" column="customer_email" type="String" not-null="true" length="20"/>
</class>
</hibernate-mapping>
DTO.Domain.cs语句如下:
using System;
using System.Collections.Generic;
using System.Text;
namespace SK.DTO.Domain
{
[Serializable]
public class Customer
{
protected string _id;
protected string _user;
protected string _email;
public virtual string Id
{
get { return _id; }
set { _id = value; }
}
public virtual string User
{
get { return _user; }
set { _user = value; }
}
public virtual string Email
{
get { return _email; }
set { _email = value; }
}
public Customer()
{
_id = String.Empty;
_user = String.Empty;
_email = String.Empty;
}
}
}
补充:.NET技术 , C#