1

当表通过实体框架模式(.edmx)在数据库中具有基本派生关系时,如何在多个表中插入和更新数据

我正在尝试使用下面的代码,但它不起作用。

public bool FacilityRegistrationVerification(FacilityRegistration oFacilityRegisteration)
        {       
            {
                using (levytaxEntities context = new levytaxEntities())
                {
                    var cast = context.FacilityRegistrations.Where(x => x.FacilityID == oFacilityRegisteration.FacilityID).Single();
                    cast = oFacilityRegisteration;
                    context.SaveChanges();
                }
           }
        }
4

1 回答 1

0

假设你有两张桌子Movies& Cast(这两张桌子的图片都在下面给出)---> 在此处输入图像描述 在此处输入图像描述

现在你想使用 MovieId 访问 Cast 的数据(Cast.MovieId 是 Movies_tbl.id 的 FK)而不是 Linq 将是--->

private static void ShowCast(MoviesEntities moviesEntities)
        {
            using (moviesEntities)
            {
                ShowAllMovies(moviesEntities);

                Console.WriteLine("Movie id");
                var id = Convert.ToInt32(Console.ReadLine());

                using (var mEntities = new MoviesEntities())
                {
                    if (mEntities.Movies_tbl.Any(x => x.id == id))
                    {
                        var Actor = mEntities.Movies_tbl.FirstOrDefault(x => x.id == id).Cast.Actor;
                        Console.WriteLine(Actor);

                        var Actoress = mEntities.Movies_tbl.FirstOrDefault(x => x.id == id).Cast.Actoress;
                        Console.WriteLine(Actoress);
                    }
                }
            }
        }


private static void ShowAllMovies(MoviesEntities moviesEntities)
        {
            Console.WriteLine("movies ids");

            using (moviesEntities)
            {
                var idList = moviesEntities.Movies_tbl.Select(x => x.id);

                foreach (var idin idList )
                {
                    Console.WriteLine(id.ToString());
                }
            }
        }

添加对象(将记录插入数据库) --->

private static void AddMovie(MoviesEntities moviesEntities)
        {
            using (moviesEntities)
            {
                moviesEntities.Movies_tbl.AddObject(new Movies_tbl { title = "ExampleTitle", Cast = new Cast { Actor = "ExampleActor", Actoress = "ExampleActoress" } });
                moviesEntities.SaveChanges();
            }
        }

TO UPDATE AN OBJECT(对数据库执行更新操作) --->

private static void UpdateCast(MoviesEntities moviesEntities)
        {
            using (moviesEntities)
            {
                var cast = moviesEntities.Casts.Where(x => x.MovieId == 10).Single();
                cast.Actor = "UpdatedActorName";
                cast.Actoress = "UpdatedActoressName";
                moviesEntities.SaveChanges();
            }
        }

其中MoviesEntities带有后缀“实体”并从 ObjectContext 类派生的部分类。

.edmx当您通过现有数据库创建时,它将自动创建

于 2013-05-18T05:38:43.580 回答