日期:2014-05-16 浏览次数:20489 次
VS报错:未能从程序集“Model, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”中加载类型“Model.DBModel.Member”
这是命名空间不对造成的,我的是映射文件里的实体命名空间跟实际不符造成的。
实体是
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Model
{
public class Member
{
public virtual int Id { get; set; }
public virtual int Accountid { get; set; }
public virtual string LoginName { get; set; }
public virtual string Password { get; set; }
public virtual string TrueName { get; set; }
public virtual string Email { get; set; }
public virtual string Birthday { get; set; }
public virtual int Sex { get; set; }
public virtual string RegistrationTime { get; set; }
}
}
映射文件是
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Model" assembly="Model">
<class name="Model.DBModel.Member,Model" table="Member" lazy="true">
<id name="Id" column="Id" type="int">
<generator class="native">
<param name="sequence">SEREMIND_TYPE</param>
</generator>
</id>
<property type="int" name="Accountid" />
<property type="string" length="250" name="LoginName" />
<property type="string" length="250" name="Password" />
<property type="string" length="250" name="TrueName" />
<property type="string" length="50" name="Email" />
<property type="string" length="50" name="Birthday" />
<property type="int" name="Sex"></property>
<property type="string" length="250" name="RegistrationTime" />
</class>
</hibernate-mapping>
注意第三行的Model后加了.DBModel,而实际实体的命名空间是Model。
所以解决办法是:
要么映射文件去掉.DBModel,即<class name="Model.Member,Model" table="Member" lazy="true">。
要么实体的命名空间后加上.DBModel,即namespace Model.DBModel。