نقل قول نوشته شده توسط md3848 مشاهده تاپیک
آره همین کارو میکنم، یه پروژه جدید مخصوص بروزرسانی "پروژه اصلی" تو سولوش ام ایجاد کردم.


1) این Entity Frameowrk به دیتابیس خاصی وابسته هستش؟ یا با هر دیتابیسی میشه ازش استفاده کرد؟
2) فرق Entity Frameowrk با linq-to-sql.dbml چیه؟ ( تو نت خوندم که linq-to-sql.dbml خودش جزئی از ado.net هستش؛ کم کم دارم گیج میشم با این اصلاحات )
3) الان تو کد زیر من از چه روشی برا کدنویسی دسترسی به دیتابیس استفاده کردم؟ یه کلاس مدل تعریف کردم ( که دقیقا همون ستون های دیتابیس هستش ) و داده ای بخوام از دیتابیس بخونم یا بنویسم از این کلاس استفاده میکنم.
public static class TbNotifications{
#region Model
public class Model
{
public int ID { get; set; }
public string Title { get; set; }
public string Summary { get; set; }
public string Image { get; set; }
public string Time { get; set; }
public string Date { get; set; }
public string Content { get; set; }
public bool WillBeShown { get; set; }
}
#endregion


#region Functions
public static List<Model> ReadAllNotifications()
{
List<Model> data = new List<Model>();


try
{
using (SqlConnection conn = new SqlConnection(Database.Connetion))
{
conn.Open();
if (conn.State == System.Data.ConnectionState.Open)
{
using (SqlCommand cmd = conn.CreateCommand())
{
string query =
" SELECT *" +
" FROM TbNotifications";


cmd.CommandText = query;


using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
data.Add(new Model
{
ID = (int)reader["ID"],
Title = reader["Title"].ToString(),
Summary = reader["Summary"].ToString(),
Image = reader["Image"].ToString(),
Time = reader["Time"].ToString(),
Date = reader["Date"].ToString(),
Content = reader["Content"].ToString(),
WillBeShown = (bool)reader["WillBeShown"],
});
}
}
}
}
}
}
catch (Exception ex)
{
Debug.WriteLine("Exception: " + ex.Message);
}


return data;
}
#endregion
}
شما میتونید با هر دیتابیسی که خواستید کار کنید، محدودیتی نیست لیست پرووایدر هارو اینجا ببینید
Database Providers - EF Core | Microsoft Docs
شما همه روش های ارتباطی دیتابیس رو فراموش کنید و فقط روی انتیتی فریمورک متمرکز بشید، جدیدترین و بهترین روش اتصال دیتابیس هست و همه جای دنیا از انتیتی استفاده میکنن و روش های دیگه کم کم منسوخ شده
ببینید خود انتیتی روش های مختلفی برای ارتباط با دیتابیس داره که به مرور زمان معرفی شدن و هرکدوم امکانات بیشتری رو ارائه کرده، در حال حاظر اخرین و بهترین روش کد فرست هست روش شما هم فک کنم همون انتیتی باشه (من فقط با کد فرست کار کردم) حالا ممکنه دیتابیس فرست باشه یا...
توی کد فرست شما خیلی ساده تر و سریعتر میتونید با دیتابیس ارتباط برقرار کنید در واقع برای واکشی اطلاعات از linq استفاده میشه
اینجا یه مقاله در مورد راه اندازی کد فرست هست که میتونید مطالعه کنید
Create SQLite DB using Entity Framework Core Code First (talkingdotnet.com)
برای ارتباط با دیتابیس شما باید اول پروایدر دلخواهتون رو نصب کنید، خوبیش اینه که نحوه استفاده پروایدر ها هیچ فرقی با هم نداره و کدی که نوشتید برای همشون تقریبا یکسانه
---
یادم رفت بگم که اون همه کدی که شما نوشتی با کد فرست میشه 2 الی 3 خط نوشت