Грешка 40 edmx файл MVC: Типът decimal(18,0) не е квалифициран с пространство от имена или псевдоним

Аз съм доста нов за MVC концепцията. Използвам Microsoft Visual Studio Express 2013 за уеб и SQL Server LocalDb v11. До сега не съм имал проблеми. Но след това промених поле за цена в моята база данни от реална на десетична (18,0). Получих грешка относно edmx файла:

Error 40: The Type decimal(18,0) is not qualified with a namespace or alias. Only primitive types can be used without qualification.

Опитах с тип „decimal“ в моя edmx файл, а също и с int (само за да видя дали работи), но пак същата грешка.

Оценявам всеки отговор.

Част от база данни:

CREATE TABLE [dbo].[Item] (
    [Id]        INT            NOT NULL,
    [DepartmentId] INT            NOT NULL,
    [Name]       NVARCHAR (50)  NOT NULL,
    [Description]      NVARCHAR (MAX) NOT NULL,
    [Price]      DECIMAL           NOT NULL,
    [Quantity]  INT            NOT NULL,
    [AuthorId]   INT            NULL,
    PRIMARY KEY CLUSTERED ([Id] ASC),
    CONSTRAINT [FK_Item_ToDepartment] FOREIGN KEY ([DepartmentId]) REFERENCES [dbo].[Department] ([Id]),
    CONSTRAINT [FK_Item_ToAuthor] FOREIGN KEY ([AuthorId]) REFERENCES [dbo].[Author] ([Id])
);

Клас модел:

       namespace WebStore.Models

{
    using System;
    using System.Collections.Generic;

    public partial class Item
    {
        public Item()
        {
            this.Cart = new HashSet<Cart>();
        }

        public int Id { get; set; }
        public int DepartmentId { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
        public decimal Price { get; set; }
        public int Quantity { get; set; }
        public Nullable<int> AuthorId { get; set; }

        public virtual Author Author { get; set; }
        public virtual Department Department { get; set; }
        public virtual ICollection<Cart> Cart { get; set; }
    }
}    

И частта в edmx файла, където получавам грешка 40:

<EntityType Name="Item">
      <Key>
        <PropertyRef Name="Id" />
      </Key>
      <Property Name="Id" Type="Int32" Nullable="false" />
      <Property Name="DepartmentId" Type="Int32" Nullable="false" />
      <Property Name="Name" Type="String" MaxLength="50" FixedLength="false" Unicode="true" Nullable="false" />
      <Property Name="Description" Type="String" MaxLength="Max" FixedLength="false" Unicode="true" Nullable="false" />
      <Property Name="Price" Type="decimal(18,0)" Nullable="false" />
      <Property Name="Quantity" Type="Int32" Nullable="false" />
      <Property Name="AuthorId" Type="Int32" />
      <NavigationProperty Name="Author" Relationship="Self.FK_Item_ToAuthor" FromRole="Izdelek" ToRole="Author" />
      <NavigationProperty Name="Department" Relationship="Self.FK_Item_ToDepartment" FromRole="Izdelek" ToRole="Departmetn" />
      <NavigationProperty Name="Cart" Relationship="Self.FK_Cart_ToItem" FromRole="Izdelek" ToRole="Cart" />
    </EntityType>    

person MatthewSlo    schedule 04.01.2015    source източник
comment
Променихте ли edmx ръчно?   -  person Mike    schedule 04.01.2015
comment
Опитайте ‹Property Name=Price Type=Decimal Precision=18 Scale=0 Nullable=false/›   -  person Mike    schedule 04.01.2015
comment
Да, преди това бях премахнал външен ключ от друга таблица, но този път работи добре.   -  person MatthewSlo    schedule 04.01.2015
comment
Хубаво предложение, но пак не става. Може би ще трябва да върна промените и да започна отново...   -  person MatthewSlo    schedule 04.01.2015
comment
Ако имате достъп до Edmx Model Browser, опитайте отново да актуализирате модела от базата данни.   -  person Mike    schedule 04.01.2015
comment
Вече нямам достъп. Пробвах и с 'Run Custom Tool', но сега ефект. Възможно ли е да изтриете edmx и след това да създадете нов (от db) без сериозни проблеми?   -  person MatthewSlo    schedule 04.01.2015
comment
Не мисля, че ще счупи нещо   -  person Mike    schedule 04.01.2015


Отговори (1)


Ако използвате десетичен знак, опитайте се да посочите типа с главно D като Type="Decimal" Precision="18" Scale="0" в секцията edmx:ConceptualModels на edmx файла. Разделът edmx:StorageModels трябва да е добре с Type="decimal" Precision="18" Scale="0".

person slacker    schedule 26.05.2015