0

アプリケーションでは、データベースの最初のアプローチでEntity Framework 4.1が使用されます。EFはIDセットを持つDBからのエンティティのInsertFunctionが存在しないと伝え続けますか?

私は、データベース内のログ記録の目的のために単純なテーブルを持っている:

CREATE TABLE [dbo].[LogEntrys](
    [LogEntryID] [bigint] IDENTITY(1,1) NOT NULL, 
    [Timestamp] [datetime] NULL, 
    [Message] [varchar](5000) NULL, 
    [IP] [varchar](50) NULL, 
    [UserName] [varchar](256) NULL, 
    [Controller] [varchar](50) NULL, 
    [Action] [varchar](50) NULL 
) 

それはのEntitySet「LogEntrys」とエンティティのログ・エントリにモデルに[OK]を変換します。 問題は、私はアプリケーションシートからテーブルに何かを挿入しようとすると、私は次のエラーを取得する、次のとおりです。

Unable to update the EntitySet 'LogEntrys' because it has a DefiningQuery and no element exists in the element to support the current operation.

私はSO上で同様の記事を見ていると説明したように私は、XMLのEDMXファイルを編集して、それを解決しようとしていますこのヒントでは:MSDN blog tip 34、定義クエリを削除しました。鍵はすでに設定されているはずです。

が、その後、私は次のエラーを取得する:

"Invalid object name 'AMSModelStoreContainer.LogEntrys'."

私は問題が何であるかわからない、および/または私が間違っているのでしょうか?

ありがとうございます。

答えて

1

問題は、この

CREATE TABLE [dbo].[LogEntrys](
    [LogEntryID] [bigint] IDENTITY(1,1) NOT NULL, 
    [Timestamp] [datetime] NULL, 
    [Message] [varchar](5000) NULL, 
    [IP] [varchar](50) NULL, 
    [UserName] [varchar](256) NULL, 
    [Controller] [varchar](50) NULL, 
    [Action] [varchar](50) NULL, 
CONSTRAINT [PK_LogEntrys] PRIMARY KEY CLUSTERED 
(
    [LogEntryID] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

のようなあなたのテーブルを作成してモデルを更新する一切のフィールドを主キーとして設定されていないことです。あなたの.edmxファイルで古いエントリを完全に削除して、それを追加し直してください。

+0

私は馬鹿だった...私は身元を確認してプライマリキーではなく...私を混乱させたのは、EF dbmxのキーアイコンを見たことだが、私はSSMSのキーをクリックすることを完全に忘れてしまった。 .. ありがとう! – Zaak

+0

時にはそれは時々これらのもので目の新鮮なセットを取る問題はありません。あなたは主キーを持っていない場合、私はエンティティのフレームワークが最高の1つを推測すると信じています... – kmcc049

関連する問題