生成 nhibernate(asp.net2.0)的XML映像文件时,在 vs.net2005 怎么设置为嵌入资源

三省Ta叔 2007-04-13 01:09:35
生成 nhibernate(asp.net2.0)的XML映像文件时,在 vs.net2005 怎么设置为嵌入资源

怎么我的Vs.Net2005不能把 xml文件设置为嵌入资源,xml文件属性都没这个选项。
...全文
581 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
杨zhe 2008-03-20
  • 打赏
  • 举报
回复
我之前也遇到这种问题,搞了一个上午才解决,我发现NHibernate好像不支持直接在网站项目下使用,要让它获得这种支持项目需要做一点小小的改动.方法如下:

1.新建网站NHTrial(我使用的是vs2005+nhibernate1.2+sqlserver2000 c#)

2.配置其web.config文件(一共有3?种配置方式,在这里配置我觉得对于单服务器最省事)
<configSections>
<section
name="nhibernate"
type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
/>
</configSections>

<nhibernate>
<add
key="hibernate.connection.provider"
value="NHibernate.Connection.DriverConnectionProvider"
/>
<add
key="hibernate.dialect"
value="NHibernate.Dialect.MsSql2000Dialect"
/>
<add
key="hibernate.connection.driver_class"
value="NHibernate.Driver.SqlClientDriver"
/>
<add
key="hibernate.connection.connection_string"
value="Server=(local);initial catalog=NHTrial;User ID=sa;Password=sa;"
/>
</nhibernate>
上面这段代码置于<configuration>节点下

3.在当前解决方案中选择文件->新建项目(visual c#)类库 名称输入NHItem

4.在NHItem项目中新建类Users
namespace NHItem
{
public class Users
{
private string id;
private string userName;
private string password;
private string emailAddress;
private DateTime lastLogon;


public Users()
{
}

public string Id
{
get { return id; }
set { id = value; }
}

public string UserName
{
get { return userName; }
set { userName = value; }
}

public string Password
{
get { return password; }
set { password = value; }
}

public string EmailAddress
{
get { return emailAddress; }
set { emailAddress = value; }
}

public DateTime LastLogon
{
get { return lastLogon; }
set { lastLogon = value; }
}
}
}

5.编写类Users的配置文件 保存为Users.hbm.xml 加入到NHItem项目中 选择这个文件属性为 "嵌入资源"(the point)
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="NHItem.Users, NHItem" table="users" lazy="false">
<id name="Id" column="LogonId" type="String" length="20">
<generator class="assigned" />
</id>
<property name="UserName" column="Name" type="String" length="40"/>
<property name="Password" type="String" length="20"/>
<property name="EmailAddress" type="String" length="40"/>
<property name="LastLogon" type="DateTime"/>
</class>
</hibernate-mapping>

6.别忘了在SQLServer中建立一个表Users
CREATE TABLE users (
LogonID nvarchar(20) NOT NULL default '0',
Name nvarchar(40) default NULL,
Password nvarchar(20) default NULL,
EmailAddress nvarchar(40) default NULL,
LastLogon datetime default NULL,
PRIMARY KEY (LogonID)
)

7.编译NHItem项目,会生成一个NHItem.dll

8.在NHTrial网站中加入此NHItem.dll的引用

9.编写测试代码,我直接在默认页的类文件Default.aspx.cs中写入
protected void Page_Load(object sender, EventArgs e)
{
Configuration cfg = new Configuration();
cfg.AddAssembly("NHItem");
ISessionFactory factory = cfg.BuildSessionFactory();
ISession session = factory.OpenSession();
ITransaction transaction = session.BeginTransaction();
NHItem.Users newUser = new NHItem.Users();
newUser.Id = "joe_cool1";
newUser.UserName = "Joseph Cool1";
newUser.Password = "abc1231";
newUser.EmailAddress = "joe@cool.com1";
newUser.LastLogon = DateTime.Now;
session.Save(newUser);
transaction.Commit();
session.Close();
}
10.运行通过,数据库数据插入成功.
三省Ta叔 2007-04-15
  • 打赏
  • 举报
回复
加了30分啦,大家帮忙啊
谢谢了
三省Ta叔 2007-04-15
  • 打赏
  • 举报
回复
现在又出现这样的情况

代码处出现错误
Configuration config = new Configuration().Configure();
//config.AddAssembly("Msscl.Maps");
config.AddXmlFile(@"E:\do_work\myproject\Reach\Mshome.Maps\MappingFiles\msCategory.hbm.xml"); //先用绝对路径测试

错误为:
Type 'Msscl.Public.Entity.msCategory' cannot be specified as proxy: method get_cname should be virtual

msCategory 是表的一个实体,在程序集Msscl.Public的文件夹Entity下。
msCategory.nhb.xml 在程序集Msscl.Maps 的MappingFiles文件夹下。

一直不知道错误是什么,以前的出现未能找到元素“urn:nhibernate-mapping-2.0:hibernate-mapping”的架构信息,后面把 2.0改为 2.2就不出现错误,现在的错误变为这个了。不知道是什么原因。
MarcuseXiao 2007-04-15
  • 打赏
  • 举报
回复
把xml放到 App_Code 目录下就行了
机器人 2007-04-14
  • 打赏
  • 举报
回复
装这个你就能像 2003 一样建立 WebApplication, 那样就可以把 xml 嵌入 dll 了。

或者你把xml放到 App_Code 目录下看看。
三省Ta叔 2007-04-14
  • 打赏
  • 举报
回复
WebApplicationProjectSetup.msi
VS80-KB915364-X86-ENU.exe 这个装不下。
是不是vs2005中文版本的不能装

装了这个的作用是什么啊?
是否有其他解决方法?
机器人 2007-04-14
  • 打赏
  • 举报
回复
建议你下个 WebApplicationProjectSetup.msi
三省Ta叔 2007-04-14
  • 打赏
  • 举报
回复
晕,没人来看啊

在Vs2005 webform里怎么设置 新建的 xml文件为嵌入资源啊
winform新增的文件里属性有设置,但是在 webform里面就找不到了。需要怎么设置
知道的帮帮忙
谢谢了啊
tesling 2007-04-14
  • 打赏
  • 举报
回复
关注
neillove 2007-04-14
  • 打赏
  • 举报
回复
帮顶
三省Ta叔 2007-04-14
  • 打赏
  • 举报
回复
没有用啊,把 xml 嵌入 dll 了 可以用建个winform的可以编译做到,但是用 nhibernate应用在 asp.net 上应该很多的。别人是怎么做的。有谁知道的吗?
ylqmf 2007-04-13
  • 打赏
  • 举报
回复
up

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧