ورود

View Full Version : پاکسازی اطلاعات یک جدول از دیتابیس (Entity Framework)



ROSTAM2
پنج شنبه 17 آبان 1403, 07:06 صبح
سلام
وقت بخیر

یک جدول مثالی: Requierments

156267
برای لیست کردن همه زکوردها:

ابتدا یک تابع کلی دارم که می شه با اون رکوردهای همه جدول ها رو بر اساس نوع اون فراخوانی کنم:

Projects نام دیتابیس و نوع Entities هست:


Friend Shared Projects As New ProjectsEntities



Shared Function ProjectObjects(Of T)() As List(Of T)
Dim TypeName As String = GetType(T).Name
Dim QueryString As String =
String.Format("SELECT VALUE {0} FROM {0}", TypeName)
Return Projects.CreateQuery(Of T)(QueryString).ToList
End Function


کد کلی کلاس:

Imports System.Data.Objects
Class ApplicationData
Friend Shared Settings As New SettingsEntities
Friend Shared Projects As New ProjectsEntities
Shared Function ProjectObjects(Of T)() As List(Of T)
Dim TypeName As String = GetType(T).Name
Dim QueryString As String =
String.Format("SELECT VALUE {0} FROM {0}", TypeName)
Return Projects.CreateQuery(Of T)(QueryString).ToList
End Function
...
End Class


برای لیست کردن رکوردهای جدول از این کد استفاده کردم:

Dim Reqs As List(Of Requirements) =
ApplicationData.ProjectObjects(Of Requirements)()


برای حذف همه رکوردها هم از این روش استفاده کردم: (Console Application)

Protected Friend Shared Sub [Erase]()
Console.ForegroundColor = ConsoleColor.Red
Console.WriteLine("{0} Do you want to Erase All Requierments?", vbTab)
Console.ForegroundColor = ConsoleColor.White
Console.Write("{0} Type Y[es] to Accept: ", vbTab)
Console.ForegroundColor = ConsoleColor.Gray
Value = Console.ReadLine
If Value.Length = 0 Then Exit Sub
Select Case Value.Trim.ToLower
Case "y", "yes"
Dim Reqs As List(Of Requirements) =
ApplicationData.ProjectObjects(Of Requirements)()
For Each R As Requirements In Reqs
ApplicationData.Projects.DeleteObject(R)
Next
ApplicationData.Projects.SaveChanges()
Console.ForegroundColor = ConsoleColor.DarkGreen
Console.WriteLine("{0} All Requierments Erased Successful.", vbTab)
End Select
End Sub

Mahmoud.Afrad
شنبه 19 آبان 1403, 00:09 صبح
https://stackoverflow.com/questions/15220411/entity-framework-delete-all-rows-in-table/15220460#15220460

ROSTAM2
شنبه 19 آبان 1403, 04:12 صبح
https://stackoverflow.com/questions/15220411/entity-framework-delete-all-rows-in-table/15220460#15220460


من از تکنولوژی ها زیاد سر در نمیارم ولی من از دز .Net Framework 3.5 SP1 برای EF استفاده می کنم که متودهایی اینچنین توی Context از جدولش وجود نداره....

156271

Mahmoud.Afrad
سه شنبه 22 آبان 1403, 02:44 صبح
اگر داده زیاد باشه مشکل خواهید داشت.
از truncate هم میتونید استفاده کنید البته اگر روابطی بین جداول باشه باید اونها رو در نظر بگیرید
https://stackoverflow.com/a/18986676