簡體   English   中英

如何在不使用EF的情況下連接ASP.NET Core Web API中的數據庫?

[英]How do I connect to database in ASP.NET Core Web API without using EF?

我試圖在不使用EF Core的情況下創建ASP.NET Core Web API。 相反,我想使用System.Data.SQLClient連接到SQL服務器,並使用普通的舊SQL進行查詢。 也就是說,我在確定如何建立連接方面遇到了一些麻煩。 我在網上找到了很多關於如何用EF來解決這個問題的教程。 但是,如果沒有它,我有點感到困惑。

您可以使用與任何.net應用程序完全相同的方式執行此操作:

using (var conn = new System.Data.SqlClient.SqlConnection(connectionString)) {
    conn.Open();
    using (var cmd = conn.CreateCommand()) {
        cmd.CommandText = "SELECT 'hello world'";
        using (var reader = cmd.ExecuteReader()) {
            while (reader.Read()) {
                ...
            }
        }
    }
}

您會發現asp.net核心的某些部分需要EF,例如身份聲明內容,因此您需要處理自己的身份驗證,並且無法使用其安全屬性等。 我已經在幾個asp.net核心項目上走了這條路,沒有遺憾

您必須使用SqlConnection和SqlCommand類。 文檔中

private static void CreateCommand(string queryString, string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
           connectionString))
    {
        SqlCommand command = new SqlCommand(queryString, connection);
        command.Connection.Open();
        command.ExecuteNonQuery();
    }
}

CreateCommand("insert into...", "[your connection string]");

另外, Dapper是訪問數據的好選擇,是擴展IDbConnection的對象映射器,因此您不必擔心對象創建。 來自小巧玲瓏的文件

public class Dog
{
    public int? Age { get; set; }
    public Guid Id { get; set; }
    public string Name { get; set; }
    public float? Weight { get; set; }

    public int IgnoredProperty { get { return 1; } }
}            

var guid = Guid.NewGuid();
var dog = connection.Query<Dog>("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM