Teddy's Knowledge Base

发布NBearV3正式版

经过NB团队,以及众多坛子里感兴趣的朋友的测试,决定在今天正式发布NBearV3的第一个稳定版本。

版本号:V3.3.5
开源协议:BSD
发布时间:2006/11/21

大家可以从SF.NET下载:http://sf.net/projects/nbear

下载后的ZIP包内,包含完整的NBearV3的源代码(src目录)、SDK文档(doc目录)、案例(cases目录)和所有的相关中文教程(tutorials目录)等。

所有中文教程的最新在线版本也可以访问:NBearV3中文教程总目录

致谢

在NBear的成长过程中,得到了坛子里许多朋友的大力支持,无论是人力物力的支援、测试、使用、建议、批评……,在这里无法一一谢过,下面列出所有能想起来的朋友的id,排名不分先后,如果您的id没有出现在下面的列表中,那一定是Teddy记性不好,在这里也向您表示最深的谢意。

dudu
alex liu
lukiya
勇敢的心
MK2
haixiapeixun
双鱼座
henry
btwocn
jiekeng
jimu8130
hougoo
jun xu
bugsharp
stwyhm
上善若水
jason ye
jack wong
sw000521
锦瑟
菌哥
iceshare
天下无豹
kim
文野
zhi xia
mine
zycpaxz
developer.vista
夜已醉
corrox
denniswlin
ailiangwu
hongbo
try
许大伟
wang2000
gary lei
codersky
李冠聪
alvin
5254341
liu zhijie
飞鹰
kevin
snigess
aspnetx
hillfree
ice
jason cui
luolianxu
。。。

posted on 2006-11-21 10:12 Teddy's Knowledge Base 阅读(10308) 评论(39)  编辑 收藏 所属分类: Ent. App. Dev.NBear

评论

#1楼  2006-11-21 10:22 张一易 [未注册用户]

顶,我一定支持
我的名字可能你还不知道,因为我才喜欢上你5天,哈哈   回复  引用    

#2楼  2006-11-21 10:23 Jason Cui      

第一个来道喜。   回复  引用  查看    

#3楼  2006-11-21 10:26 张一易 [未注册用户]

虽然座到了沙发,还是啥都不多说了,下载,学习去...   回复  引用    

#4楼  2006-11-21 10:27 上善若水[匿名] [未注册用户]

恭喜恭喜,学习学习,努力努力。   回复  引用    

#5楼  2006-11-21 10:29 随风.NET [未注册用户]

期待中   回复  引用    

#6楼  2006-11-21 10:42 高海东      

nbear - beta 和nbear - stable 的区别是什么啊   回复  引用  查看    

#7楼  2006-11-21 10:48 dudu      

祝贺!   回复  引用  查看    

#8楼  2006-11-21 10:52 aspnetx      

支持   回复  引用  查看    

#9楼  2006-11-21 11:25 阿不      

支持,祝贺一下   回复  引用  查看    

#10楼  2006-11-21 11:47 周星星[匿名] [未注册用户]

好的,一直在关注.打算马上使用,下载先!感谢分享   回复  引用    

#11楼  2006-11-21 12:40 wangxc[匿名] [未注册用户]

试用了好几个版本了,感觉还是不错。   回复  引用    

#12楼  2006-11-21 13:04 finesite      

关注学习ing,希望越来越好,那样就不用自己来写与实体相关的sql语句了   回复  引用  查看    

#13楼  2006-11-21 14:03 数据绑定者      

sf下载太慢了,我这里链接总是超时出错
能否给个别处的下载?

再一次感谢Teddy   回复  引用  查看    

#14楼  2006-11-21 14:55 音乐虫子      

恭喜恭喜,赶紧下来试用   回复  引用  查看    

#15楼  2006-11-21 20:45 文野      

在SF上我找不到3.3.5的链接。   回复  引用  查看    

#16楼  2006-11-21 22:57 wqxh      

呵呵,正式版出了!

看看我使用的NBear框架的项目要不要换成这个版本呢   回复  引用  查看    

#17楼  2006-11-22 03:07 MK2      

呵呵,终于出正式版了,继续关注``````   回复  引用  查看    

#18楼  2006-11-22 03:33 管理制度 [未注册用户]

正式版。。。。。   回复  引用    

#19楼  2006-11-22 12:56 稻草人[匿名] [未注册用户]

正式版出了!下载来看看!   回复  引用    

#20楼  2006-11-23 09:15 almzg [未注册用户]

问下哈,我刚接触orm相关知识,这几天也在网上查找相关资料,听朋友介绍nhibernate是.net版本的hibernate,也能实现orm及数据查询的相关操作。具体情况并未去了解。相反这两天倒是一直在研究nbear,发现是个不错的选择!那我的问题是:NBear和NHibernate有什么差异么,其优点和不足个体现在什么方面?各位朋友有知道的能说说么?谢谢了!   回复  引用    

#21楼  2006-11-23 18:06 目标年薪三千万      

不过,一人一行,你也太奢侈拉   回复  引用  查看    

#22楼  2006-11-23 22:14 MaxFree      

哎呀,偶的神啊.才出差几天,就出正式版了. 太棒了.   回复  引用  查看    

#23楼  2006-11-27 16:58 张一易      

感谢teddy ! ! 辛苦了, NBear框架确实很好.
但是我在使用中遇到以下问题:
1.ActiveEntity找不到了.删除某个实体的时候,我现在只知道了写Delete的Sql来实现,呵呵.
2.关联的Contained 和 LazyLoad 等属性,缺少详细点的资料介绍,现在的教程不够明白具体的意思,所以我现在都没敢做实体的关系和约束,所以都靠自己手动代码上来维护着数据的关系和约束.
3.long 型的 只读字段,不能实现为 自动递增型,好象只考虑到了 int 型哦...
不好意思,我 还是很喜欢这个框架,他整体上感觉给人太好了...   回复  引用  查看    

#24楼 [楼主] 2006-11-27 17:20 Teddy's Knowledge Base      

@张一易
谢谢支持。

可以多参考一下现在的教程,对于多有的Attribute和相关属性都有演示的。

删除可以使用Gateway.Delete和BatchDetele方法。

自增字段现在确实只支持int,似乎用long的不多,不过我可以在下一版加上对long的支持。   回复  引用  查看    

#25楼  2006-11-29 00:00 老燕      

呵呵,老夫何德何能,上了TEDDY的感谢版,呵呵,祝愿TEDDY的NB和他的小BB一起成长为参天大树   回复  引用  查看    

#26楼  2006-12-14 10:33 almzg[匿名] [未注册用户]

大家好!问大家个问题,有空的帮看下。
多对多关系:User,UserGroup,Group,有如下记录:User表里有用户a,Group表里有组1,2,3,4。UserGroup
中用户a有组1,2。界面上对用户a进行操作,列出所有的组,1,2,3,4,用户a拥有的组选上(打钩),用户a
所在的组1,2取消打钩,将组3,4钩选上,即换为3,4。然后点保存,那要如何操作比较快呢?
====================
我的代码:
User mUser = gateway.Find<User>(User._.Code == "test1");
//想加的组
GroupArrayList mGroupArrayList = new GroupArrayList();
Group mGroup1 = gateway.Find<Group>(Group._.Code == "3");
mGroupArrayList.add(mGroup1);
Group mGroup2 = gateway.Find<Group>(Group._.Code == "4");
mGroupArrayList.add(mGroup2);

mUser.Attach();
mUser.Groups = mGroupArrayList;
//我想直接替换数组,不想先将关系表里的记录一条条删除,然后再一条条加入
gateway.Save<User>(mUser);

如上写数据库里的数据没变化,大家有空帮我看下怎么写?   回复  引用    

#27楼 [楼主] 2006-12-14 10:51 Teddy's Knowledge Base      

@almzg[匿名]

你改完没有save,当然数据库里的数据不会更新。另外必须注意,你要让Groups自动级联更新,必须在User的设计实体中,为User.Groups属性的FkQuery标注Contained=true属性。

使用的代码可以象下面这样写:

User mUser = gateway.Find<User>(User._.Code == "test1");
//先删除旧的组
mUser.Groups = null;
gateway.Save(mUser);

//再添加新的组
GroupArrayList mGroupArrayList = new GroupArrayList();
Group[] newGroups = gateway.FindArray<Group>(Group._.Code.In("3", "4"));
mGroupArrayList.addRange(newGroups);
mUser.Groups = mGroupArrayList;
gateway.Save(mUser);
  回复  引用  查看    

#28楼  2006-12-14 14:46 almzg[匿名] [未注册用户]

我在User的实体设计中有如下写:
[ManyToManyQuery(typeof(UserGroup), Contained = true, LazyLoad = true)]
Group[] Groups
{
get;
set;
}
===========================
可是我按照您的代码(未开启事物):
//先删除旧的组
mUser.Groups = null;
gateway.Save(mUser);//运行完此句,我看数据库,旧记录仍然在   回复  引用    

#29楼 [楼主] 2006-12-14 16:09 Teddy's Knowledge Base      

@almzg[匿名]
确实发现一个和该问题相关的bug,正在修复中。暂时可以这样避免该问题:
//先删除旧的组
object temp = mUser.Groups; //暂时加这句可以解决问题,下一个版本就能修复。
mUser.Groups = null;
gateway.Save(mUser);   回复  引用  查看    

#30楼 [楼主] 2006-12-14 17:47 Teddy's Knowledge Base      

@almzg[匿名]
改问题已修复,请下载最新版本:http://www.codeplex.com/nbear/Release/ProjectReleases.aspx?ReleaseId=1302   回复  引用  查看    

#31楼  2006-12-15 09:19 cxbin [未注册用户]

在表的关联定义中,无法区分“聚集”和“组合”。现在,NBEAR中使用 CONTAINED 属性,只能实现“组合”关系。因此,在更新、删除时,受到很大局限。 另外,我在“聚集”和“组合”关系下,仍然需要使用 级联新增 功能。
例子1:“一对多”关系
A:A1 、 A2 ; G :G1 。G1 包容A1、A2,则如果我只要删除G1与A1、A2之间的关联,而不级联删除;现在情况是 G1、A1、A2 都被删除。无法实现 仅删除其关联关系。


例子2:“多对多”关系
A:A1 、 A2 ; G :G1 、G2。G1 包容A1、A2,G2 包容A1,则如果我只要删除G1与A1、A2之间的关联,而不是级联删除;现在情况是 操作无法进行,出现异常。因为 G2 包容A1 存在外键约束。
  回复  引用    

#32楼 [楼主] 2006-12-15 14:33 Teddy's Knowledge Base      

@cxbin
v3.4.1中已经支持了,在v3.4.1中,如果ManyToManyQuery的属性不是Contained的,当Save时,可以仅删除关联关系(但是,还不支持在Save时增加关联关系,增加关联关系,必须新建并Save一个关联实体实例)。   回复  引用  查看    

#33楼  2006-12-16 11:13 cxbin [未注册用户]

其实,在“多对多”关系中,根本就不能有Contained=true 。
3.4.1中,如果ManyToManyQuery的属性是Contained时,A:A1 、 A2 ; G :G1 、G2。可以建立以下关联:G1 包容A1、A2,G2 包容A1。这样,关联删除时,操作无法进行,出现异常。因为 G2 包容A1 存在外键约束。
因此,建议去掉Contained属性,修改为 CascadeAddOrUpdate ,这样就可实现 关联及被关联对象 的添加、修改,同时也避免了 级联删除 的异常。   回复  引用    

#34楼  2006-12-25 22:47 flyzb [未注册用户]

1.用EntityDesignToEntity生成Entity时是否可以设置输出目录或者命名空间,并且把每个类单独形成一个文件;同时可以选择类图来生成需要的类。因为项目中如果包含很多类时,更多情况下只更新部分类,现在这样很不方便。
2.EntityConfig.xml也很不方便,最好能够每个类单独配置一个xml文件,支持多文件夹分布,因为大型项目需要这样的管理方式,现在这样很不方便。
  回复  引用    

#35楼 [楼主] 2006-12-25 23:02 Teddy's Knowledge Base      

@flyzb
谢谢你的建议,输出目录或者命名空间现在就是可以修改的。

“可以选择类图来生成需要的类”是计划中的一部分,将来会提供这方面的支持。

“每个类单独配置一个xml文件,支持多文件夹分布”也是一个不错的建议,我会考虑采纳。

再次感谢你的建议!   回复  引用  查看    

#36楼  2006-12-26 21:41 flyzb [未注册用户]

我想问的是如果我在EntityDesigns项目中的类是处于不同的namespaces中的,该如何生成Entities?   回复  引用    

#37楼 [楼主] 2006-12-26 21:58 Teddy's Knowledge Base      

@flyzb
可以有两种做法:分割成多个EntityDesign工程,每个生成到不同的namespace和独立的entities的.cs文件和xml配置文;或者也可以每次只生成一个EntityDesign工程中指定的一部分entities,生成到不同的entities的.cs文件和xml配置文件。   回复  引用  查看    

#38楼  2006-12-27 22:45 flyzb [未注册用户]

请问如何在框架中使用存储过程?   回复  引用    

#39楼 [楼主] 2006-12-28 08:55 Teddy's Knowledge Base      

@flyzb
可以使用Gateway.FindArrayByStoreProcedureXXX方法。

但是必须注意,sp中返回的数据的字段列表顺序必须和实体中的属性定义顺序完全一致(字段名称可以不一致)。   回复  引用  查看    


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-12-28 21:44 编辑过
 
历史上的今天:

另存  打印