日期:2014-05-16  浏览次数:20447 次

VS报错:未能从程序集“Model, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”中加载类型“Model.DBModel.Member”

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。