C# .Net EntityFramework Core
CLI command to create DB Schema?
dotnet ef migrations add MyFirstMigration
dotnet ef database update
***
namespace MyEntityFrameWorkTest
{
public class GardenContext : DbContext
{
public DbSet&ls;Garden﹥ Gardens {get;set;}
public DbSet&ls;Bed﹥ Beds {get;set;}
public DbSet&ls;Crop﹥ Crops {get;set;}
public DbSet&ls;CropAssignment﹥ CropAssignments {get;set;}
protected override void OnConfiguring(DbContextOptionsBuilder options)
=﹥ options.UseSqlServer("Server=localhost,1433; Database=master;User=sa; Password=Numbernine9");
}
public class Garden
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int GardenId {get;set;}
public string Name {get;set;}
public List&ls;Bed﹥ Beds { get; }=new List&ls;Bed﹥();
}
public class Bed
{
public int BedId {get;set;}
public int Number {get;set;}
public int GardenId {get;set;}
public Garden Garden {get;set;}
public List&ls;CropAssignment﹥ CropAssignments {get;set;}
}
public class Crop
{
public int CropId {get;set;}
public string Name {get;set;}
public List&ls;CropAssignment﹥ CropAssignments {get;set;}
}
public class CropAssignment
{
public int CropAssignmentId {get;set;}
public int CropId {get;set;}
public Crop Crop {get;set;}
public int BedId {get;set;}
public Bed Bed {get;set;}
public int Year {get;set;}
}
}
***
namespace MyEntityFrameWorkTest
{
class Program
{
static void Main(string[] args)
{
using (var db=new GardenContext())
{
ReadThisYearsCrops(db);
}
Console.WriteLine("Data has been inserted!");
}
private static void ReadThisYearsCrops(GardenContext db)
{
Console.WriteLine("Getting all the crops for this year...");
var assignments=db.CropAssignments.AsNoTracking()
.Where(ca =﹥ ca.Year == 2020)
.Include(ca =﹥ ca.Bed).ThenInclude(b =﹥ b.Garden)
.Include(ca =﹥ ca.Crop)
.OrderBy(ca =﹥ ca.Bed.Garden.Name).ThenBy(ca =﹥ ca.Crop.Name).ThenBy(ca =﹥ ca.Bed.Number)
.ToList();
assignments.ForEach(a =﹥ Console.WriteLine($"Growing {a.Crop.Name} on bed {a.Bed.Number} in the garden {a.Bed.Garden.Name}"));
}
private static void CreateSampleData(GardenContext db)
{
var garden=(db.Gardens.Add(new Garden { Name="My first garden" })).Entity;
db.SaveChanges();
var bed1=(db.Beds.Add(new Bed { GardenId=garden.GardenId, Number=1 })).Entity;
db.SaveChanges();
var bed2=(db.Beds.Add(new Bed { GardenId=garden.GardenId, Number=2 })).Entity;
db.SaveChanges();
var bed3=(db.Beds.Add(new Bed { GardenId=garden.GardenId, Number=3 })).Entity;
db.SaveChanges();
var pumpkin=(db.Crops.Add(new Crop { Name="Pumpkin" })).Entity;
db.SaveChanges();
var salad=(db.Crops.Add(new Crop { Name="Salad" })).Entity;
db.SaveChanges();
var tomatoes=(db.Crops.Add(new Crop { Name="Tomatoes" })).Entity;
db.SaveChanges();
var beans=(db.Crops.Add(new Crop { Name="Beans" })).Entity;
db.SaveChanges();
var assignment1=(db.CropAssignments.Add(
new CropAssignment
{
CropId=pumpkin.CropId,
BedId=bed1.BedId,
Year=2020
})).Entity;
db.SaveChanges();
var assignment2=(db.CropAssignments.Add(
new CropAssignment
{
CropId=salad.CropId,
BedId=bed2.BedId,
Year=2020
})).Entity;
db.SaveChanges();
var assignment3=(db.CropAssignments.Add(
new CropAssignment
{
CropId=beans.CropId,
BedId=bed3.BedId,
Year=2020
})).Entity;
db.SaveChanges();
var assignment4=(db.CropAssignments.Add(
new CropAssignment
{
CropId=pumpkin.CropId,
BedId=bed3.BedId,
Year=2021
})).Entity;
db.SaveChanges();
var assignment5=(db.CropAssignments.Add(
new CropAssignment
{
CropId=tomatoes.CropId,
BedId=bed2.BedId,
Year=2021
})).Entity;
db.SaveChanges();
}
}
}
Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «C# .Net EntityFramework Core», вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.
Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.
Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!
Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.