Entity Framework を使用して .NET Core で PostgreSQL を操作するにはどうすればよいですか?

青灯夜游
リリース: 2018-10-20 17:49:56
転載
6305 人が閲覧しました

この記事の内容は、Entity Frameworkを使用して.NET CoreでPostgreSQLを操作する方法を紹介するものです。一定の参考値があるので、困っている友人は参考にしていただければ幸いです。

Entity Framework は、.NET Core では Entity Framework Core と呼ばれます。一般的には SQL Server データベースでデータ操作を実行するために使用されますが、実際には他のデータベースもサポートしています。ここでは PostgreSQL を例に挙げます。

PostgreSQL

PostgreSQL は、ネイティブ システムと Docker の 2 つの方法でインストールできます。

  • #Official

  • Docker

Package

アプリケーション プロジェクトに追加関連する引用。


dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL

Entity

User テーブルと Order テーブルをマッピングするための 2 つのエンティティ クラスを作成します。

public class User
{
    [Key]
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
    public virtual ICollection<Order> Orders { get; set; }

    public override string ToString()
    {
        var orders = new StringBuilder();
        foreach (var o in Orders)
        {
            orders.Append(o.ToString());
        }
        return $"UserId: {Id} Name: {Name} Orders: {orders.ToString()}";
    }
}
ログイン後にコピー
public class Order
{
    [Key]
    public int Id { get; set; }
    [Required]
    public int UserId { get; set; }
    [Required]
    public string Item { get; set; }
    [Required]
    public string Description { get; set; }
    public virtual User User { get; set; }

    public override string ToString()
    {
        return $"OrderId: {Id} Item: {Item} Descriptoin: {Description}";
    }
}
ログイン後にコピー

DbContext

必要な DbContext クラスを構築し、PostgreSQL への接続に必要なパラメーターを渡します。

public class PurchaseDbContext : DbContext
{
    public DbSet<User> Users { get; set; }
    public DbSet<Order> Orders { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder builder)
    {
        builder.UseNpgsql("Host=localhost;Username=postgres;Password=random;Database=Purchase");
    }
}
ログイン後にコピー

Seeder

データベースを初期化するための補助クラスを構築します。

public class PurchaseDbContxtSeeder
{
    public static void Seed(PurchaseDbContext context)
    {
        context.Database.EnsureDeleted();
        context.Database.EnsureCreated();

        var users = new List<User>
            {
                new User { Name = "Tom" },
                new User { Name = "Mary" }
            };

        var orders = new List<Order>
            {
                new Order { User = users[0], Item = "cloth", Description = "handsome"},
                new Order {User = users[1], Item = "hat", Description = "red"},
                new Order {User = users[1], Item = "boot", Description = "black"}
            };

        context.Users.AddRange(users);
        context.Orders.AddRange(orders);

        context.SaveChanges();
    }
}
ログイン後にコピー

Test

テスト プログラムの最初のステップは、データを生成する補助クラスを呼び出すことです。2 番目のステップは、データ テーブル内のデータをクエリして、コンソールに表示することです。

static void Main(string[] args)
{
    using (var context = new PurchaseDbContext())
    {
        PurchaseDbContxtSeeder.Seed(context);

        var users = context.Users.Include(u => u.Orders).ToList();
        users.ForEach(u =>
        {
            System.Console.WriteLine(u);
        });
    }
}
ログイン後にコピー

次の結果が表示されます:


Entity Framework を使用して .NET Core で PostgreSQL を操作するにはどうすればよいですか?

プログラムが正常に実行されると、生成されたデータ テーブルがデータベースに表示されるはずです:


Entity Framework を使用して .NET Core で PostgreSQL を操作するにはどうすればよいですか?

Entity Framework を使用して .NET Core で PostgreSQL を操作するにはどうすればよいですか?

Entity Framework を使用して .NET Core で PostgreSQL を操作するにはどうすればよいですか?

データ テーブルの生成スクリプトを見ると、フィールドとテーブル間のリレーションシップが Entity Framework を通じて自動的に生成されていることがわかります。


Entity Framework を使用して .NET Core で PostgreSQL を操作するにはどうすればよいですか?

Entity Framework を使用して .NET Core で PostgreSQL を操作するにはどうすればよいですか?

以上がEntity Framework を使用して .NET Core で PostgreSQL を操作するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!