سلام خدمت دوستان و اساتید محترم.
بنده یک پروژه بلیزر ساختم ولی با استفاده از Db First پروژه رو پیاده سازی کردم. از آنجایی که با هر بار آپدیت مدل تمام ویژگی های کلاس ها پاک میشه من از کلاس های MetaData استفاده کردم. اما گویا این روش در بلیزر جواب نمیده. من از همین روش در Mvc استفاده کردم و هیچ مشکلی نداشت ولی چرا در بلیزر جواب نمیده رو نمیدونم.
از دوستان کسی میتونه راهنمایی کنه که من چه روش دیگه ای رو میتونم استفاده کنم تا مشکلم حل بشه و تغییرات کلاس ها در هر با آپدیت دیتابیس پاک نشه و باقی بمونه.
این کلاسی هست که توسط Scaffold-DBContext ساخته شده است.
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace MyProject.Data.Models
{
public partial class Users
{
public int ID { get; set; }
public string Name { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public string Email { get; set; }
}
}
و این کلاس MetaData هست که به صورت دستی ایجاد شده است.
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace MyProject.Data.Models
{
public class Users_MetaData
{
[Key]
public int ID { get; set; }
[Display(Name = "نام و نام خانوادگی")]
[Required(AllowEmptyStrings = false, ErrorMessage = "لطفا {0} را وارد نمایید")]
[MaxLength(100)]
public string Name { get; set; }
[Display(Name = "نام کاربری")]
[Required(AllowEmptyStrings = false, ErrorMessage = "لطفا {0} را وارد نمایید")]
[MaxLength(100)]
public string UserName { get; set; }
[Display(Name = "کلمه عبور")]
[Required(AllowEmptyStrings = false, ErrorMessage = "لطفا {0} را وارد نمایید")]
[MaxLength(200)]
public string Password { get; set; } = "1234";
[Display(Name = "ایمیل")]
[DataType(DataType.EmailAddress, ErrorMessage = "ایمیل وارد شده صحیح نیست")]
[MaxLength(100)]
public string Email { get; set; }
}
[MetadataType(typeof(Users_MetaData))]
public partial class Users
{
}
}
اما مشکل اینجاست که validator ها کار نمیکنه و هیچ خطایی هم نداره! در صورتی که همین روش در Mvc به درستی کار میکنه.
ببینید روش کار با دیتابیس در Blazor به صورت Design Pattern هست. یعنی به صورت Code First. شما اگر بررسی کنید می بینید تمامی منابع و آموزشها هم به همین صورت هست و روش DB First خیلی خیلی کم در موردش صحبت شده. تمامی امکانات دیتابیس و Identity و ... مثل همین Validator ها در روش Code First و برای این روش هستن. البته نه اینکه به روش DB First نشه استفاده کرد. ولی در روش DB First باید تمامی کانفیگ هایی که به صورت اتوماتیک در Code First انجام میشه و رو خودتون دستی انجام بدید که مطمئنا کار ساده ای نیست.
فکر میکنم شما بهتره اعتبارسنجی رو به روش Fluent Validation انجام بدید.
تاریخ :
1402/04/28
- ساعت :
09:04:00 PM
- بازدید :
1314
- پاسخ :
0
|
تاریخ :
1403/12/30
- ساعت :
06:43:00 PM
- بازدید :
66
- پاسخ :
1
|
تاریخ :
1403/12/30
- ساعت :
06:52:00 PM
- بازدید :
48
- پاسخ :
1
|
تاریخ :
1403/12/27
- ساعت :
05:26:00 PM
- بازدید :
90
- پاسخ :
1
|
تاریخ :
1403/12/01
- ساعت :
01:07:00 PM
- بازدید :
175
- پاسخ :
0
|
تاریخ :
1403/11/30
- ساعت :
12:08:00 PM
- بازدید :
149
- پاسخ :
1
|
تاریخ :
1399/12/21
- ساعت :
10:20:00 AM
- بازدید :
2767
- پاسخ :
1
|
تاریخ :
1399/12/20
- ساعت :
10:32:00 AM
- بازدید :
2623
- پاسخ :
1
|
تاریخ :
1403/12/24
- ساعت :
06:18:00 PM
- بازدید :
81
- پاسخ :
1
|
تاریخ :
1403/12/26
- ساعت :
03:13:00 PM
- بازدید :
66
- پاسخ :
1
|
تاریخ :
1404/01/07
- ساعت :
05:02:00 AM
- بازدید :
89
- پاسخ :
1
|
تاریخ :
1402/04/28
- ساعت :
09:04:00 PM
- بازدید :
1314
- پاسخ :
0
|
تاریخ :
1403/12/30
- ساعت :
06:43:00 PM
- بازدید :
66
- پاسخ :
1
|
تاریخ :
1398/08/23
- ساعت :
09:16:00 PM
- بازدید :
9852
- پاسخ :
1
|
تاریخ :
1404/01/03
- ساعت :
12:18:00 PM
- بازدید :
38
- پاسخ :
1
|
تاریخ :
1404/01/03
- ساعت :
10:39:00 AM
- بازدید :
45
- پاسخ :
1
|
تاریخ :
1404/01/02
- ساعت :
05:05:00 PM
- بازدید :
60
- پاسخ :
1
|
تاریخ :
1403/12/30
- ساعت :
06:52:00 PM
- بازدید :
48
- پاسخ :
1
|
تاریخ :
1399/06/04
- ساعت :
02:25:00 PM
- بازدید :
4419
- پاسخ :
2
|
تاریخ :
1403/11/30
- ساعت :
10:36:00 AM
- بازدید :
202
- پاسخ :
2
|