Entity Framework Core 2.2.4 - добавление функции таблицы пользователя вручную - PullRequest
0 голосов
/ 24 апреля 2019

В настоящее время я изучаю EF Core 2.2.4 из EF6.

Картограф отлично работал для моих таблиц, но он не захватывал мои представления, пользовательские функции или пользовательские процедуры.Поэтому я начал писать их вручную.Я только что закончил свою первую пользовательскую функцию.

Добавлено в контекст;

//Added this line
public virtual DbSet<Outstanding8850> Outstanding8850 { get; set; }

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.HasAnnotation("ProductVersion", "2.2.4-servicing-10062");

    ... All the tables ...

    //Manually wrote this part  
    modelBuilder.Entity<Outstanding8850>(entity =>
    {
    entity.ToTable("OutStanding8850");                
    entity.Property(e => e.ID);
    entity.Property(e => e.CLIENTCODE).HasMaxLength(16).IsUnicode(false);
    entity.Property(e => e.CLIENTLOCATION).HasMaxLength(255).IsUnicode(false);
    entity.Property(e => e.Fullname).HasMaxLength(255).IsUnicode(false);
    entity.Property(e => e.FIRSTNAME).HasMaxLength(255).IsUnicode(false);
    entity.Property(e => e.LASTNAME).HasMaxLength(255).IsUnicode(false);
    entity.Property(e => e.PHONE).HasMaxLength(255).IsUnicode(false);
    entity.Property(e => e.IDATE).HasColumnType("date");
    entity.Property(e => e.CONTROL);
    entity.Property(e => e.SSN).HasMaxLength(255).IsUnicode(false);
    entity.Property(e => e.QualBy).HasMaxLength(255).IsUnicode(false);
    entity.Property(e => e.I8850).HasColumnType("date");
    entity.Property(e => e.R8850).HasColumnType("date");
    entity.Property(e => e.TERMINATE).HasColumnType("date");
    entity.Property(e => e.StartDate).HasColumnType("date");
    entity.Property(e => e.DOCCMT1).HasMaxLength(255).IsUnicode(false);
    entity.Property(e => e.Notator).HasMaxLength(255).IsUnicode(false);
    entity.Property(e => e.CSR).HasMaxLength(255).IsUnicode(false);
    entity.Property(e => e.DateDue).HasColumnType("date");
    entity.Property(e => e.IDateDue).HasColumnType("date");
    entity.Property(e => e.Bad8850Code).HasMaxLength(255).IsUnicode(false);
    entity.Property(e => e.Bad8850Date).HasColumnType("date");
    entity.Property(e => e.DaysLeft21);
    entity.Property(e => e.Expr1).HasColumnType("date");
    entity.Property(e => e.DOOFFER).HasColumnType("date");
    entity.Property(e => e.DOHIRE).HasColumnType("date");
    entity.Property(e => e.ClientRep).HasMaxLength(255).IsUnicode(false);
    entity.Property(e => e.SentFor8850).HasColumnType("date");
    entity.Property(e => e.DayBenefitIssued);
    });         
}

Создан файл класса со следующим;

using System;

namespace WOTC_Database
{
    public partial class Outstanding8850
    {
        public int ID { get; set; }
        public string CLIENTCODE { get; set; }
        public string CLIENTLOCATION { get; set; }
        public string Fullname { get; set; }
        public string FIRSTNAME { get; set; }
        public string LASTNAME { get; set; }
        public string PHONE { get; set; }
        public DateTime? IDATE { get; set; }
        public int? CONTROL { get; set; }
        public string SSN { get; set; }
        public string QualBy { get; set; }
        public DateTime? I8850 { get; set; }
        public DateTime? R8850 { get; set; }
        public DateTime? TERMINATE { get; set; }
        public DateTime? StartDate { get; set; }
        public string DOCCMT1 { get; set; }
        public string Notator { get; set; }
        public string CSR { get; set; }
        public DateTime? DateDue { get; set; }
        public DateTime? IDateDue { get; set; }
        public string Bad8850Code { get; set; }
        public DateTime? Bad8850Date { get; set; }
        public int? DaysLeft21 { get; set; }
        public DateTime? Expr1 { get; set; }
        public DateTime? DOOFFER { get; set; }
        public DateTime? DOHIRE { get; set; }
        public string ClientRep { get; set; }
        public DateTime? SentFor8850 { get; set; }
        public byte? DayBenefitIssued { get; set; }
    }
}

Однако для доступа к нему ядолжен использовать;

IQueryable<Outstanding8850> x = DB.Outstanding8850.FromSql("SELECT * FROM OutStanding8850()");

Есть ли способ написать это, чтобы я мог вместо этого использовать;

DbSet<Outstanding8850> x = DB.Outstanding8850();

Как, как я это сделал в EF6?

ЕслиИтак, есть ли способ добавить входные данные?

Пример:

DbSet<Outstanding8850> x = DB.SomeFunction(Input1,Input2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...