PDA

View Full Version : سوال: unique کردن اطلاعات



alireza.tabesh
چهارشنبه 10 مهر 1392, 09:05 صبح
سلام.
چطور می تونم یک فیلد از جدولمو توی مدلی که دارم تعریف می کنم یونیک کنم .
راهی مثل تنظیم طول داده رشته ای یا not null کردن که الان با دستور ساده MaxLenght یا Requared هست وجود داره ؟

Sirwan Afifi
چهارشنبه 10 مهر 1392, 09:42 صبح
کافیه فیلد مورد نظر رو با Attribute زیر مشخص کنید :


public class User
{
[Key]
public int UserId{get;set;}
public string UserName{get;set;}
}

alireza.tabesh
چهارشنبه 10 مهر 1392, 11:00 صبح
درسته ولی الان فقط UserId که Unique میشه من میخوام Username هم Unique بشه

Amir Oveisi
چهارشنبه 10 مهر 1392, 12:53 عصر
هر دو فیلد رو کلید در نظر بگیرید

Cybersilent
جمعه 19 مهر 1392, 19:56 عصر
یک راهش اینه که هنگام ثبت کاربر، Username رو چک کنید و در صورتی که تکراری نبود، اجازه ثبت بدهید.

hakim22
شنبه 20 مهر 1392, 09:48 صبح
من Code First کار نمیکنم اما به نظرم باید بجای Key از Unique استفاده کنید.
اگر منظور شما در SQL است. این موضوع یک تالار دیگر است.

alireza.tabesh
شنبه 04 آبان 1392, 13:47 عصر
من Code First کار نمیکنم اما به نظرم باید بجای Key از Unique استفاده کنید.
اگر منظور شما در SQL است. این موضوع یک تالار دیگر است.

در entity framwork منظورم بود .

alireza.tabesh
شنبه 04 آبان 1392, 13:48 عصر
هر دو فیلد رو کلید در نظر بگیرید

نمیشه. فقط یک کلید قبول می کنه.

alireza.tabesh
شنبه 04 آبان 1392, 13:50 عصر
یک راهش اینه که هنگام ثبت کاربر، Username رو چک کنید و در صورتی که تکراری نبود، اجازه ثبت بدهید.

وقتی تعداد اطلاعاتم زیاده سرعت برنامه پایین میاد .
از طرفی دیتابیس من داره با کد ایجاد میشه با هر بار اجرا نمیشه برم فیلدمو یونیک کنم.

Amir Oveisi
شنبه 04 آبان 1392, 14:32 عصر
چطور انجامش میدید که میگید قبول نمیکنه؟

alireza.tabesh
شنبه 04 آبان 1392, 17:22 عصر
چطور انجامش میدید که میگید قبول نمیکنه؟



[key]
public int UserId {get;set;}

[key]
[MaxLength(100)]
public string Username{get;set;}

hamed II
شنبه 04 آبان 1392, 19:59 عصر
تو کلاس dbcontext بعد از این خط :


public DbSet<User> Users { get; set; }
این کد رو اضافه کن :


protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().HasKey(u => new
{
u.UserId,
u.Username
});
}

alireza.tabesh
یک شنبه 05 آبان 1392, 08:46 صبح
تو کلاس dbcontext بعد از این خط :


public DbSet<User> Users { get; set; }
این کد رو اضافه کن :


protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().HasKey(u => new
{
u.UserId,
u.Username
});
}

خیلی خیلی ازت ممنونم. درست شد .