2012-07-01 37 views
0

遇到实体框架问题。我已经为Iktato表添加了一个新行,但不起作用。遇到实体框架问题。添加新行

CREATE TABLE [Iktato] (
[TIPACT] nvarchar(3), 
[NRINREG] int NOT NULL identity(1,1), 
[DATAINREG] datetime, 
[NRACT] nvarchar(10), 
[DATAACT] datetime, 
[CODARHIVA] nvarchar(20), 
[NRFILE] int, 
[NRANEXE] int, 
[EMITENT] nvarchar(50), 
[TERMEN] datetime, 
[RESP1] nvarchar(50), 
[RESP2] nvarchar(50), 
[RESP3] nvarchar(50), 
[RESP4] nvarchar(50), 
[DESCRIERE] ntext, 
[PRIORITATE] nvarchar(13), 
[STATUT] nvarchar(20), 
[FILENAME] nvarchar(128), 
PRIMARY KEY (NRINREG) 
) 
GO 


CREATE TABLE [rasp] (
[TIPACT] nvarchar(3), 
[NRINREG] int NOT NULL, 
[DATAINREG] datetime, 
[NRACT] nvarchar(10), 
[DATAACT] datetime, 
[CODARHIVA] nvarchar(20), 
[NRFILE] int, 
[NRANEXE] int, 
[EMITENT] nvarchar(50), 
[TERMEN] datetime, 
[RESP1] nvarchar(50), 
[RESP2] nvarchar(50), 
[RESP3] nvarchar(50), 
[RESP4] nvarchar(50), 
[DESCRIERE] ntext, 
[PRIORITATE] nvarchar(13), 
[STATUT] nvarchar(20), 
[FILENAME] nvarchar(128), 
[ROW_ID] int NOT NULL IDENTITY, 
PRIMARY KEY (ROW_ID) 
) 
GO 


ALTER TABLE rasp 
ADD CONSTRAINT fk_Iktato 
FOREIGN KEY (NRINREG) 
REFERENCES Iktato (NRINREG) ON DELETE CASCADE 

GO 

它了我的程序序列:

private RegistruEntities entities; 
private Iktato proba; 

proba = new Iktato { NRINREG = 5 }; 
entities.AttachTo("Iktatoes", proba); 
entities.SaveChanges(); 

我想插入注册号为5,将被保存在数据库中Iktato一行。 保存不起作用。

请帮忙!

+0

它是如何*不工作*?你会得到一个错误 - 如果是这样的话:**什么**错误?另外:你能告诉我们你的连接字符串用于这个应用程序? –

+0

没有错误,但没有插入我的Iktato表中的新行!我使用sqlce 3.5。 删除行工作正常。这里的代码: 私人无效delete_Click(对象发件人,RoutedEventArgs E) { 如果(iktatoesViewSource.View.CurrentPosition> = 0){ INT = wval1 Convert.ToInt32(nRINREGLabel.Content); proba = entities.Iktatoes.Single(iktato => iktato.NRINREG == wval1); entities.DeleteObject(proba); entities.SaveChanges(); iktatoesViewSource.DeferRefresh(); } } –

+0

请**不要**将代码示例或示例数据放入注释中 - 因为您无法对其进行格式化,所以**非常难**阅读它....相反:**更新**您的问题通过编辑它来提供额外的信息!谢谢。 –

回答

1

新的实体必须使用AddObject插入,不是AttachTo

proba = new Iktato { NRINREG = 5 }; 
entities.AddObject("Iktatoes", proba); 
entities.SaveChanges(); 

你也应该有一个ObjectSet<Iktato>作为你的ObjectContext中的一员,它允许使用更多的强类型版本,以避免串"Iktatoes"为实体集:

proba = new Iktato { NRINREG = 5 }; 
entities.Iktatoes.AddObject(proba); 
entities.SaveChanges(); 
0

试试这个。它适用于我

public ItemCategory Create(ItemCategory objItemCategory) 
    {    
     context.ItemCategory.Add(objItemCategory); 
     context.SaveChanges(); 

     return objItemCategory; 
    }