Получение данных из другого соединения после входа в систему? - PullRequest
0 голосов
/ 21 января 2019

Я создаю сайт для отслеживания праздников.

У меня есть два подключения к данным в моем приложении MVC.

DeafultConnection, который содержит aspnetusers, которые я использую для входа пользователей и регистрации.

Затем LotusWorksEntities, которые я использую для отслеживания сведений о сотрудниках, таких как запросы на отпуск, часы и т. Д.

В DefaultConnections под aspnetusers есть столбец для электронной почты. В LotusWorksEntitles в Таблице сотрудников есть также столбец для электронной почты.

На моей странице просмотра администратора у меня есть список всех сотрудников, у которых есть столбец для сайта.

Я хочу, чтобы администраторы, которым назначены определенные сайты, могли видеть сотрудников только с этих назначенных сайтов.

Я сделал это вручную

public ActionResult Index()
    {

        var employees = db.Employees.Include(e => e.Area).Include(e => e.Discipline).Include(e => e.Shift).Include(e => e.Site).Where(e => e.SiteID == 2);
        return View(employees.ToList());
    } 

Есть ли способ, которым я мог бы соединить эти два соединения, чтобы при входе администратора он знал, к какому сайту они были назначены, и отображал этих сотрудников под этим сайтом.

Вот мои модели:

 public partial class Employee
{
    public int EmployeeID { get; set; }
    public string FullName { get; set; }
    public string Email { get; set; }
    public string Password { get; set; }
    public System.DateTime StartDate { get; set; }
    public int RoleID { get; set; }
    public int ShiftID { get; set; }
    public int AreaID { get; set; }
    public int DisciplineID { get; set; }
    public int SiteID { get; set; }
    public int ALCategory { get; set; }
    public int HoursTaken { get; set; }
    public Nullable<int> AwardedLeave { get; set; }
    public Nullable<int> TotalHoursThisYear { get; set; }
    public int HoursCarriedForward { get; set; }
    public Nullable<int> EntitlementRemainingThisYear { get; set; }
    public string Comments { get; set; }
    public int SickLeaveTaken { get; set; }
    public Nullable<int> SickLeaveEntitlement { get; set; }
    public Nullable<int> SickLeaveEntitlementRemaining { get; set; }
    public int StudyLeaveEntitlement { get; set; }
    public int StudyLeaveTaken { get; set; }
    public Nullable<int> StudyLeaveRemaining { get; set; }
    public int ExamLeaveTaken { get; set; }
    public int ForceMajeure { get; set; }
    public int BereavementLeaveTaken { get; set; }
    public int MaternityLeaveTaken { get; set; }
    public int ParentalLeaveTaken { get; set; }
    public int AdoptionLeaveTaken { get; set; }
    public string ManagerEmail { get; set; }
    public string AreaManagerEmail { get; set; }

    public virtual Area Area { get; set; }
    public virtual Discipline Discipline { get; set; }
    public virtual Shift Shift { get; set; }
    public virtual Site Site { get; set; }
}

Тогда модель моего сайта:

public partial class Site
{
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
    public Site()
    {
        this.Employees = new HashSet<Employee>();
    }

    public int SiteID { get; set; }
    public string SiteName { get; set; }
    public string SiteManager { get; set; }
    public string SiteDelegate { get; set; }
    public string SiteAdmin { get; set; }
    public string SiteLocation { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<Employee> Employees { get; set; }
}

Таблица сотрудников и таблица сайтов связаны через внешний ключ.

1 Ответ

0 голосов
/ 21 января 2019

Не совсем понятно, о каких двух соединениях у вас идет речь, о соединении с базой данных вы говорите?

Но в любом случае вы можете использовать соединения Linq для соединения двух отдельных списков объектов в C #.фильтровать данные.По сути, ваш список двух должен иметь отношение к объединению для работы.

Здесь объясняется, как объединить два списка в памяти.

...