В настоящее время я изучаю 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);