- ุงุชููู ูุง ูุจู ูุฏุง ุนู ุงูู Type Casting in CSharp ูููููุง ูุจุฐู ุนูู ุจุฑุถู ูู ุงูู Not Binding
Manual Mapping (Build-in Casting Operator)
ุงุญูุง ุงุชููู ูุง ุนู ุงูู code-first
- ุจูุจูู ุฃูู ุญุงุฌุฉ ุงูู class ุจุชุงุนู ุนุงุฏู
- ุฏุง ุงูู Model ูููุง ุงูู Class ุจูู ุซู Table ูู ุงูู Database
// Model : is the Class that represents the table in the database
class User
{
public int Id { get; set; }
public string FullName { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public string SecurityStamp { get; set; }
}- ูุนูู ุงุญูุง ุฏูููุชู ุจูุชููู ุนู ุดูู ุงูู Data ูู ุงูู Database
- ุจุณ ู ุด ุฏุง ุงููู ุจูุธูุฑ ููู Users ุจุชุงุน ุงูู ููุน
- ูุนุดุงู ูุฏุง ูุงุฒู ุจูุนู ู Class ุชุงูู ูุจูุจูุง ุงุณู ู ุงูู View Model
class UserViewModel
{
public int Id { get; set; }
public string Fname { get; set; }
public string Lname { get; set; }
public string Email { get; set; }
}- ุฏูููุชู ููุธูุฑ ู ุดููุฉ ุฅูู ุงูู ูุฑูุถ ูุงุฎุฏ ู ู ุงูู Database ุงูู Object ู ู ุงูููุน User
- ูุนุดุงู ุฃุธูุฑูุง ูุฃุญูููุง ุงููุง ุชุธูุฑ ููู HTML ูุงุฒู ุฃุญูููุง ููู Class ุงููู ููุฑุฌุน ููุณู ุงููู ูู ุงูู View Model
- ุจุณ ู
ูููุนุด ุฃุฎูู reference ู
ู Class ูุดุงูุฑ ุนูู Object ูู Class ุชุงูู ู
ู ุบูุฑ ู
ุง ุฃุนู
ู Casting
- ูุฒู ู ุง ุนุฑููุง ุนูุฏูุง ููุนูู ู ู ุงูู Casting ุงููู ูู ุง ุงูู Implicit ูุงูู Explicit
- ุจุณ ูู ุงูุญุงูุฉ ุฏู ูุงุฒู ูู ุญุงุฌุฉ ู ุด ู ุนู ููุฉ Built-in ุงูู ุฃุนู ููุง ุจุฅูุฏู
// MAIN
User user1 = new User()
{
Id = 1,
FullName = "Pop Corn",
Password = "Password",
Email = "pop.corn@me.com",
SecurityStamp = Guid.NewGuid().ToString()
};
// UserViewModel userViewModel = user1; // ERROR
// We should do Casting (Mapping)
UserViewModel userViewModel = (UserViewModel)user1;
// It's also will give me ERROR, we should implement it- ุนุดุงู ูุนู ู Explicit operator ุจุฑูุญ ููู class ุงูุชุงูู ุงููู ูู ุงูู view
- ุงูู Model ุงูุฃุตูู ุฏุง ู ู ูู ูุณู ูู Poco class
public static explicit operator UserViewModel(User user)
{
string[] names = user.FullName.Split(' ');
return new UserViewModel()
{
Id = user.Id,
Fname = names[0],
Lname = names[1],
Email = user.Email
};
}