Я пытаюсь создать то, что я считал простым каталогом для нашей компании. Я не веб-разработчик, я разработчик отдельного приложения, поэтому мои знания о ASP. NET MVC и Entity Framework ограничены.
Я выполнил некоторые инструкции, которые нашел в Интернете, и создал объекты (2 таблицы) в более старом приложении, операторы SQL, используемые для получения списка сотрудников, используют левое внешнее соединение и 3 параметра where. Я предполагаю, что мне нужно использовать LINQ в файле model.Context.vb
?
Я также вижу методы Details
в контроллере, но он создает экземпляр этого контекстного файла, поэтому я предполагаю, что именно здесь мне нужно объединить две сущности, а затем получить доступ к уточненному списку через контроллер, это о праве? Как и где мне написать оператор LINQ, если это то, что мне вообще нужно?
Это контроллер:
Imports System
Imports System.Collections.Generic
Imports System.Data
Imports System.Data.Entity
Imports System.Linq
Imports System.Net
Imports System.Web
Imports System.Web.Mvc
Imports MillDirectory
Namespace Controllers
Public Class tblUsersController
Inherits System.Web.Mvc.Controller
Private db As New HDDataEntities
' GET: tblUsers
Function Index() As ActionResult
Return View(db.tblUsers.ToList())
End Function
' GET: tblUsers/Details/5
Function Details(ByVal id As String) As ActionResult
If IsNothing(id) Then
Return New HttpStatusCodeResult(HttpStatusCode.BadRequest)
End If
Dim tblUser As tblUser = db.tblUsers.Find(id)
If IsNothing(tblUser) Then
Return HttpNotFound()
End If
Return View(tblUser)
End Function
' GET: tblUsers/Create
Function Create() As ActionResult
Return View()
End Function
' POST: tblUsers/Create
'To protect from overposting attacks, please enable the specific properties you want to bind to, for
'more details see https://go.microsoft.com/fwlink/?LinkId=317598.
<HttpPost()>
<ValidateAntiForgeryToken()>
Function Create(<Bind(Include:="USLanID,USAS400ID,USVaxID,USLName,USFname,USDepartment,USPhoneNumber,USFaxNumber,USExtension,USPagerNumber,USSupervisor,USPhoneAreaCode,USPagerAreaCode,USFaxAreaCode,USHelpDeskFlag,USAvailable,USAvailableDate,USEmail,USDomain,USInactive,KICKUser,KICKMinutes,USNewTicketNotify,USNAME,USClosedTicketnotify,USCellAreaCode,USCellPhoneNumber,USAllowedToPage,USLocation,USHomeArea,USHomePhone,USExcludeHomePhone,USEmpNum,USCellTxtMsgAddress,USHireDate,USTrackVac,USIncludeinCellDownload,USRecoveryMsg,USPowerMsg,USPMBreakMsg,USProdRPT,USStockRPT,USPagingType,USPicturePath,USTest,USPMBreakMins,USPMBreakNum,USmsgPCName")> ByVal tblUser As tblUser) As ActionResult
If ModelState.IsValid Then
db.tblUsers.Add(tblUser)
db.SaveChanges()
Return RedirectToAction("Index")
End If
Return View(tblUser)
End Function
' GET: tblUsers/Edit/5
Function Edit(ByVal id As String) As ActionResult
If IsNothing(id) Then
Return New HttpStatusCodeResult(HttpStatusCode.BadRequest)
End If
Dim tblUser As tblUser = db.tblUsers.Find(id)
If IsNothing(tblUser) Then
Return HttpNotFound()
End If
Return View(tblUser)
End Function
' POST: tblUsers/Edit/5
'To protect from overposting attacks, please enable the specific properties you want to bind to, for
'more details see https://go.microsoft.com/fwlink/?LinkId=317598.
<HttpPost()>
<ValidateAntiForgeryToken()>
Function Edit(<Bind(Include:="USLanID,USAS400ID,USVaxID,USLName,USFname,USDepartment,USPhoneNumber,USFaxNumber,USExtension,USPagerNumber,USSupervisor,USPhoneAreaCode,USPagerAreaCode,USFaxAreaCode,USHelpDeskFlag,USAvailable,USAvailableDate,USEmail,USDomain,USInactive,KICKUser,KICKMinutes,USNewTicketNotify,USNAME,USClosedTicketnotify,USCellAreaCode,USCellPhoneNumber,USAllowedToPage,USLocation,USHomeArea,USHomePhone,USExcludeHomePhone,USEmpNum,USCellTxtMsgAddress,USHireDate,USTrackVac,USIncludeinCellDownload,USRecoveryMsg,USPowerMsg,USPMBreakMsg,USProdRPT,USStockRPT,USPagingType,USPicturePath,USTest,USPMBreakMins,USPMBreakNum,USmsgPCName")> ByVal tblUser As tblUser) As ActionResult
If ModelState.IsValid Then
db.Entry(tblUser).State = EntityState.Modified
db.SaveChanges()
Return RedirectToAction("Index")
End If
Return View(tblUser)
End Function
' GET: tblUsers/Delete/5
Function Delete(ByVal id As String) As ActionResult
If IsNothing(id) Then
Return New HttpStatusCodeResult(HttpStatusCode.BadRequest)
End If
Dim tblUser As tblUser = db.tblUsers.Find(id)
If IsNothing(tblUser) Then
Return HttpNotFound()
End If
Return View(tblUser)
End Function
' POST: tblUsers/Delete/5
<HttpPost()>
<ActionName("Delete")>
<ValidateAntiForgeryToken()>
Function DeleteConfirmed(ByVal id As String) As ActionResult
Dim tblUser As tblUser = db.tblUsers.Find(id)
db.tblUsers.Remove(tblUser)
db.SaveChanges()
Return RedirectToAction("Index")
End Function
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If (disposing) Then
db.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
End Class
End Namespace