您的位置:首页 > 其它

基于RIA的多层应用(三)--ADO.NET Entity Framework 操作

2011-01-22 23:10 459 查看


生成了hzfz这个实体。如图:

(1)读取数据:

hzfzEntities ent = new hzfzEntities();

var result = from s1 in ent.SYS_MENU select s1;

foreach (var item in result)

{

this.Response.Write(item.菜单名 + "<br/>");

}

(2)插入数据:

hzfzEntities ent = new hzfzEntities();

RIATest.Web.Entity.SYS_MENU menu = new SYS_MENU();

menu.ID = 8888;

menu.URL = "";

menu.菜单名 = "hello";

ent.AddToSYS_MENU(menu);

ent.SaveChanges();

XX有时报错:

错误太长了,完整的错误是:无法更新 EntitySet“Enterprise”,因为它有一个 DefiningQuery,而 <ModificationFunctionMapping> 元素中没有支持当前操作的 <InsertFunction> 元素。

XX失败的意外可能性:

1.出现情况为原表有主键,但是在创建表的视图时,没有设置视图表的ID为主键!
2.原表本身就没有设置主键

(3)更新:

var res=(from s1 in ent.SYS_MENU where s1.菜单名=="hello" select s1).First();

res.菜单名 = "myWorld";

ent.SaveChanges();

(4) 删除:

var res = (from s1 in ent.SYS_MENU where s1.菜单名 == "myWorld" select s1).First();

ent.DeleteObject(res);

ent.SaveChanges();

(5)关联操作:(关联可以通过数据库的外键操作实现,导入后会自动有关联)。如果导入的关联关系不是和希望的一样,说明数据库设计有问题。



关联查询:

hzfzEntities ent = new hzfzEntities();

var result = (from s1 in ent.OrderSet select s1).First();

result.Order_DetailsSet.Load();

foreach (RIATest.Web.Entity.Order_DetailsSet item in result.Order_DetailsSet)

this.Response.Write(item.ProductID + "<br/>");

关联添加:

hzfzEntities ent = new hzfzEntities();

RIATest.Web.Entity.OrderSet os = new OrderSet();

os.Id = 3;

os.Name = "扬州";

os.Order_DetailsSet.Add(new Order_DetailsSet() { ProductID=3});

ent.AddToOrderSet(os);

ent.SaveChanges();

关联删除:

var result = (from s1 in ent.OrderSet where s1.Id==5 select s1).First();

result.Order_DetailsSet.Load();

while (result.Order_DetailsSet.Count > 0)

ent.DeleteObject(result.Order_DetailsSet.First());

ent.DeleteObject(result);

ent.SaveChanges();

关联修改:

var result = (from s1 in ent.OrderSet where s1.Id==2 select s1).First();

result.Name = "北京";

var item = (from s1 in result.Order_DetailsSet where s1.ProductID == 2 select s1).First();

item.Id = 6;//因为没有其他字段,就用这个字段为例,实际上该字段不可修改。

ent.SaveChanges();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: