急!!!可以级联insert,不能级联update?

4 views
Skip to first unread message

try

unread,
Dec 1, 2006, 3:35:42 AM12/1/06
to NBear Google Group
public interface Category : Entity
{
[PrimaryKey]
int CategoryID { get; }
string CategoryName { get; set; }
[FkQuery("Category", Contained=true, LazyLoad=true)]
Product[] Products
{
get; set;
}
}
public interface Product : Entity
{
[PrimaryKey]
int ProductID { get; }
string ProductName { get; set; }
[FkReverseQuery(LazyLoad = true)]
Category Category
{
get; set;
}
}
=====insert===
Category category = new Category();
category.CategoryName = "11";
Product product = new Product();
product.ProductName = "1111";
ProductArrayList prarry = new ProductArrayList();
prarry.Add(product);
category.Products = prarry;
Gateway.Default.Save<Category>(category);
=====================执行结果正确,product表也被插入数据了

===update=======
Category category = new Category();
category.CategoryID=1;
category.Attach(); /////////////////////////////
(用find方法和手动效果一样)
category.CategoryName = "222222222";
Product product = new Product();
product.ProductName = "222222222222";
ProductArrayList prarry = new ProductArrayList();
prarry.Add(product);
category.Products = prarry;
Gateway.Default.Save<Category>(category);
=====================执行结果,只有category被更新
product表没有被更新

另:实际代码save使用
DbTransaction tran = Gateway.Default.BeginTransaction();
int ret = 0;
try
{
Gateway.Default.Save<Category>(category, tran);
//Gateway.Default.Save<Product>(product, tran);
tran.Commit();
}
catch
{
tran.Rollback();
}
finally
{
Gateway.Default.CloseTransaction(tran);
}

Teddy

unread,
Dec 1, 2006, 3:38:18 AM12/1/06
to nbear...@googlegroups.com
update时,你的Category必须是find出来的,product才会被save。

try

unread,
Dec 1, 2006, 3:58:25 AM12/1/06
to NBear Google Group

我也试过用find方法,
不过输出的sql语句也只是 update category
这样对product赋值应该对否?

Teddy

unread,
Dec 1, 2006, 4:22:55 AM12/1/06
to nbear...@googlegroups.com
你可以试试
Product product = new Product();
product.ProductName = "222222222222";
//ProductArrayList prarry = new ProductArrayList();
cat.Products.Add(product);


 
On 12/1/06, try <djsof...@gmail.com> wrote:

try

unread,
Dec 1, 2006, 4:33:44 AM12/1/06
to NBear Google Group
不行

On 12月1日, 下午5时22分, Teddy <shijie...@gmail.com> wrote:
> 你可以试试
> Product product = new Product();
> product.ProductName = "222222222222";
> //ProductArrayList prarry = new ProductArrayList();
> cat.Products.Add(product);
>

> On 12/1/06, try <djsoft....@gmail.com> wrote:
>
>
>
>
>
> > 我也试过用find方法,
> > 不过输出的sql语句也只是 update category
> > 这样对product赋值应该对否?
> > Product product = new Product();
> > product.ProductName = "222222222222";
> > ProductArrayList prarry = new ProductArrayList();

> > prarry.Add(product);- 隐藏被引用文字 -- 显示引用的文字 -

try

unread,
Dec 1, 2006, 4:55:43 AM12/1/06
to NBear Google Group
基本能试的我都试了下。
此种类型也不行:
Product prdouct = category.prouct[0];
........

到底要咋样才能??

On 12月1日, 下午5时22分, Teddy <shijie...@gmail.com> wrote:

> 你可以试试
> Product product = new Product();
> product.ProductName = "222222222222";
> //ProductArrayList prarry = new ProductArrayList();
> cat.Products.Add(product);
>

> On 12/1/06, try <djsoft....@gmail.com> wrote:
>
>
>
>
>
> > 我也试过用find方法,
> > 不过输出的sql语句也只是 update category
> > 这样对product赋值应该对否?
> > Product product = new Product();
> > product.ProductName = "222222222222";
> > ProductArrayList prarry = new ProductArrayList();

Teddy

unread,
Dec 1, 2006, 10:38:17 PM12/1/06
to nbear...@googlegroups.com
经检查测试,确认这是一个bug。非常抱歉给你造成不便,我会在下一版本中修覆改问题。
 
Teddy

 
On 12/1/06, try <djsof...@gmail.com> wrote:
> > prarry.Add (product);- 隐藏被引用文字 -- 显示引用的文字 -

Teddy

unread,
Dec 2, 2006, 11:59:42 PM12/2/06
to nbear...@googlegroups.com
该问题已经在最新的v3.3.7版修复,请下载新版本。
Reply all
Reply to author
Forward
0 new messages