C# 为什么我会得到;无法添加密钥已在使用中的实体";错误

C# 为什么我会得到;无法添加密钥已在使用中的实体";错误,c#,linq,C#,Linq,可能重复: 我在谷歌上搜索了很多关于这个问题的信息,发现很多人都面临着同样的问题。但我们还可以挺过去。发布了许多解决方案,但没有任何收获 我已经编写了一个LINQ查询,它检索了大约38条记录,并使用foreach循环将这些记录按照代码插入到其他表中 var Results = (from p in (from d in compact.CURRENT_STATUS where QtrEndD

可能重复:

我在谷歌上搜索了很多关于这个问题的信息,发现很多人都面临着同样的问题。但我们还可以挺过去。发布了许多解决方案,但没有任何收获

我已经编写了一个LINQ查询,它检索了大约38条记录,并使用foreach循环将这些记录按照代码插入到其他表中

var Results =  (from p in (from d in compact.CURRENT_STATUS
                                                   where QtrEndDate >= d.ValidStartDate && QtrEndDate <= d.ValidDueDate && d.LocationCode == EmployeeLocation && d.DeptCode == selecteddept
                                            select new
                                            {
                                                loccode = d.LocationCode,
                                                taskcode = d.TaskCode,
                                                deptcode = d.DeptCode,
                                                flag = d.Flag,
                                                startdate = d.ValidStartDate,
                                                duedate = d.ValidDueDate,
                                                remarks = d.Remarks,
                                                content = d.UploadDocContent,
                                                title = d.UploadDocTitle,
                                                type = d.UploadDocType
                                            }).Union(from i in compact.HISTORY_STATUS
                                                     where QtrEndDate >= i.ValidStartDate && QtrEndDate <= i.ValidEndDate && i.LocationCode == EmployeeLocation && i.DeptCode ==  selecteddept
                                                     select new
                                                     {
                                                loccode = i.LocationCode,
                                                taskcode = i.TaskCode,
                                                deptcode = i.DeptCode,
                                                flag = i.Flag,
                                                startdate = i.ValidStartDate,
                                                duedate = i.ValidEndDate.Date,
                                                remarks = i.Remarks,
                                                content = i.UploadDocContent,
                                                title = i.UploadDocTitle,
                                                type = i.UploadDocType
                                                     }) select p);





                        foreach (var item in Results)
                        {
                            REPORT_TABLE RT = new REPORT_TABLE();
                            {

                                RT.LocationCode = item.loccode;
                                RT.TaskCode = item.taskcode;
                                RT.DeptCode = item.deptcode;
                                RT.Flag = item.flag;
                                RT.ValidStartDate = item.startdate;
                                RT.ValidDueDate = item.duedate;
                                RT.Remarks = item.remarks;
                                RT.UploadDocContent = item.content;
                                RT.UploadDocTitle = item.title;
                                RT.UploadDocType = item.type;
                                RT.SubmittedBy = (Session["username"]).ToString();
                                RT.SubmittedByIP = (Session["IP"]).ToString();
                                RT.SubmittedOn = System.DateTime.Now;
                                RT.ReportID = RHqueryFind.ReportID;
                                RT.AsOnDate = QtrEndDate;
                            }
                            compact.REPORT_TABLEs.InsertOnSubmit(RT);  
                            compact.SubmitChanges();
                        };
var Results=(从p in(从d in compact.CURRENT_STATUS

其中QtrEndDate>=d.ValidStartDate&&QtrEndDate=i.ValidStartDate&&QtrEndDate我认为您必须删除列的主键。创建新列,即序列号,并使用标识规范将其设置为主键


我遇到了同样的问题,即,无法添加具有已在使用的键的实体,但当我删除插入值的列的主键并使用主键和标识规范创建一个新列时。问题已解决

报告表中的主键字段是什么
t,或者给它赋值,表示其他行(数据库中已经存在)有。也请看谢谢!!主键出现问题。再次插入相同的记录。因此出现了错误。谢谢大家!!!嘿,阿杰…请再次帮助我。我有一个显示一些数据的Gridview。我想在浏览器本身的pdf文件中的某个按钮控件上显示Gridview的数据。基本上是为了呈现内容在同一浏览器中转换为pdf格式。我已经编写了以下代码,但无法获取。
GVReportData.AllowPaging=false;GVReportData.DataBind();Response.ClearContent();StringWriter sw=new StringWriter();HtmlTextWriter htw=new HtmlTextWriter(sw);GVReportData.RenderControl(htw);Response.ContentType=“application/Pdf”;Response.AddHeader(“内容处置”,htw.ToString());Response.AddHeader(“内容长度”,htw.ToString());Response.Write(sw.ToString());Response.End()
由于某些原因,我无法发布问题。请帮助我解决。我不想提供我所能提供的下载选项,而是直接在浏览器中以pdf格式打开gridview的数据。@Rahul2788我将对此进行检查。