के साथ संदर्भ में नई इकाई डालें मैं अपनी SQL तालिका में एक नया रिकॉर्ड डालना चाहता हूं। मैंने कोशिश की:पहचान प्राथमिक कुंजी
public void CreateComment(int questionId, string comment)
{
QuestionComment questionComment = context.TableName.Create();//1*
questionComment.propertyThatIsNotAConstraint= questionId;
questionComment.body = comment;
context.QuestionComments.Add(questionComment);
context.SaveChanges();//ERROR...
}
1 * मैं देखने के लिए IntelliSense मुझे बताओ हैरान हूँ: "ध्यान दें कि नई इकाई में नहीं जोड़ा या सेट से जुड़ा हुआ है"
त्रुटि पुस्तकें:
"प्राथमिक कुंजी बाधा का उल्लंघन 'PK_TableName'। ऑब्जेक्ट 'dbo.TableName' में डुप्लिकेट कुंजी सम्मिलित नहीं कर सकता। डुप्लिकेट कुंजी मान (0) है। \ R \ n कथन समाप्त कर दिया गया है।"
समस्या questionComment
अपने पी है कि: questionComment.Id
0
को चूक। इसे अगली उपलब्ध पहचान या अन्यथा पॉप्युलेट नहीं किया जाना चाहिए और "सामान्य" पहचान डालने की आवश्यकता है।
इकाई ढांचे से मुझे इस स्केनेरियो को संभालने की उम्मीद कैसे होती है?
अनुरोध के रूप में:
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Feedback.Models
{
using System;
using System.Collections.Generic;
public partial class QuestionComment
{
public int id { get; set; }
public int questionId { get; set; }
public string body { get; set; }
public int commentIndex { get; set; }
}
}
पर सेट किया जाता है कि' बुला SaveChanges के बाद, 'newCommentObject। प्रश्न आईडी में डेटाबेस द्वारा नई जेनरेट की गई कुंजी होगी। – haim770
@ haim770 - मैंने सही त्रुटि के साथ प्रश्न और त्रुटि का स्थान अपडेट किया। अगर कुछ तंत्र या आदेश है जो इसे हल कर सकता है तो कृपया एक उत्तर पोस्ट करें। –
मैं आमतौर पर ऐसा कुछ करता हूं: डेटाबेस में मेरी 'पहचान' 1 से ऊपर जाती है; सी # में मेरी नई इकाइयां "नकली" पीके मान -1 नीचे से प्राप्त होती हैं - तब तालिका में वास्तविक डालने पर उन्हें बदल दिया जाएगा (लेकिन अलग, अलग "नकली" पीके मान होने से सुनिश्चित करें कि आप संस्थाओं के साथ काम कर सकते हैं ठीक है , और उन्हें अन्य संस्थाओं से भी संदर्भित करें!) –