我有一个SQL数据库3个表:Movies
,Viewer
和Movies_Viewer
(=这显示了哪些观众在看到哪部电影)。
客户端将插入Viewer
名称和Movie
名称,并使用实体框架,我想将其插入到我拥有的3个表中(例如,使用linq),但是我如何知道什么ID使电影和观众将其插入到第三个表中桌子?
我应该插入两个表,然后调用另一个将ID插入第三个表的函数吗?我如何拥有所有数据?
这是我的代码-这样做是错误的吗?
[WebMethod]
public void InsertToDB(string viewerName, string movieName)
{
InsertToViewerTbl(viewerName);
InsertToMoviesTbl(movieName);
}
private void InsertToMoviesTbl(string movieName)
{
var db = new MoviesEntities1();
var movieNameTbl = new MovieNameTbl();
movieNameTbl.MovieName = movieName;
db.AddToMovieNameTbls(movieNameTbl);
db.SaveChanges();
}
private void InsertToViewerTbl(string viewerName)
{
var db = new MoviesEntities1();
var viewerNameTbl = new ViewerNamesTbl();
viewerNameTbl.ViewerName = viewerName;
db.AddToViewerNamesTbls(viewerNameTbl);
db.SaveChanges();
}
将对象添加到数据库后,您可以只返回对象,例如:
[WebMethod] public void InsertToDB(string viewerName, string movieName)
{
var viewer = InsertToViewerTbl(viewerName);
var movie = InsertToMoviesTbl(movieName);
InsertToMovies_Viewer(viewer, movie);
}
private MovieNameTbl InsertToMoviesTbl(string movieName)
{
var db = new MoviesEntities1();
var movieNameTbl = new MovieNameTbl();
movieNameTbl.MovieName = movieName;
db.AddToMovieNameTbls(movieNameTbl);
db.SaveChanges();
return movieNameTbl ;
}
private ViewerNamesTbl InsertToViewerTbl(string viewerName)
{
var db = new MoviesEntities1();
var viewerNameTbl = new ViewerNamesTbl();
viewerNameTbl.ViewerName = viewerName;
db.AddToViewerNamesTbls(viewerNameTbl);
db.SaveChanges();
return viewerNameTbl;
}
private void InsertToMovies_Viewer(ViewerNamesTbl viewer, MovieNameTbl movie)
{
var db = new MoviesEntities1();
var movieViewer = new Movies_Viewer();// or however the table is called
movieViewer.Viewer = viewer; // or however the column is called
movieViewer.Movie= movie; // or however the column is called
db.AddToMovies_Viewer(movieViewer);
db.SaveChanges();
}
但我建议您使用一种方法来执行此操作,这样就不必每次都创建连接,并且每次都保存更改:
[WebMethod] public void InsertToDB(string viewerName, string movieName)
{
var db = new MoviesEntities1();
var movie = new MovieNameTbl();
movieNameTbl.MovieName = movieName;
db.AddToMovieNameTbls(movieNameTbl);
var viewer = new ViewerNamesTbl();
viewerNameTbl.ViewerName = viewerName;
db.AddToViewerNamesTbls(viewerNameTbl);
var movieViewer = new Movies_Viewer();// or however the table is called
movieViewer.Viewer = viewer; // or however the column is called
movieViewer.Movie= movie; // or however the column is called
db.AddToMovies_Viewer(movieViewer);
db.SaveChanges();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句