生成了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();