c# - क्या मैं LINQ डालने के बाद 'आईडी' फ़ील्ड वापस कर सकता हूं?





.net linq-to-sql (3)


आपके ऑब्जेक्ट को डीबी में करने के बाद ऑब्जेक्ट को उसके आईडी फ़ील्ड में एक मान प्राप्त होता है।

इसलिए:

myObject.Field1 = "value";

// Db is the datacontext
db.MyObjects.InsertOnSubmit(myObject);
db.SubmitChanges();

// You can retrieve the id from the object
int id = myObject.ID;

जब मैं लिंक-टू-एसक्यूएल के साथ डीबी में ऑब्जेक्ट दर्ज करता हूं, तो क्या मुझे वह आईडी मिल सकती है जिसे मैंने अभी एक और डीबी कॉल किए बिना डाला है? मुझे लगता है कि यह बहुत आसान है, मुझे नहीं पता कि कैसे।




जेनरेट आईडी को डालने पर सहेजे जा रहे ऑब्जेक्ट के उदाहरण में सहेजा जाता है (नीचे देखें):

protected void btnInsertProductCategory_Click(object sender, EventArgs e)
{
  ProductCategory productCategory = new ProductCategory();
  productCategory.Name = “Sample Category”;
  productCategory.ModifiedDate = DateTime.Now;
  productCategory.rowguid = Guid.NewGuid();
  int id = InsertProductCategory(productCategory);
  lblResult.Text = id.ToString();
}

//Insert a new product category and return the generated ID (identity value)
private int InsertProductCategory(ProductCategory productCategory)
{
  ctx.ProductCategories.InsertOnSubmit(productCategory);
  ctx.SubmitChanges();
  return productCategory.ProductCategoryID;
}

संदर्भ: http://blog.jemm.net/articles/databases/how-to-common-data-patterns-with-linq-to-sql/#4




public enum QuestionType
{
    Role = 2,
    ProjectFunding = 3,
    TotalEmployee = 4,
    NumberOfServers = 5,
    TopBusinessConcern = 6
}

... एक अच्छी घोषणा है।

आपको परिणाम को इस तरह से डालना होगा:

int Question = (int)QuestionType.Role

अन्यथा, प्रकार अभी भी QuestionType प्रकार है।

सख्तता का यह स्तर सी # रास्ता है।

इसके बजाय एक वर्ग घोषणा का उपयोग करना एक विकल्प है:

public class QuestionType
{
    public static int Role = 2,
    public static int ProjectFunding = 3,
    public static int TotalEmployee = 4,
    public static int NumberOfServers = 5,
    public static int TopBusinessConcern = 6
}

घोषित करने के लिए यह कम सुरुचिपूर्ण है, लेकिन आपको इसे कोड में डालने की आवश्यकता नहीं है:

int Question = QuestionType.Role

वैकल्पिक रूप से, आप विजुअल बेसिक के साथ अधिक सहज महसूस कर सकते हैं, जो कई क्षेत्रों में इस तरह की अपेक्षाओं को पूरा करता है।





c# .net linq linq-to-sql