misaqyrn9677 Ответов: 5

Хотите сохранить запись в базе данных с помощью entity framework, но при сохранении из таблицы ошибка "нет ключа"


Привет
я хочу сохранить запись в базе данных с помощью entity framework, но при сохранении из таблицы ошибка "нет ключа"
я не стол по организации отдыха и определен первичный ключ таблицы
пожалуйста, помогите мне
с уважением
yarian

Что я уже пробовал:

Закодируйте Меня В Модели :
пространство имен Entity.EF
{
использование системы;
использование системы.Коллекции.Общий;
использование системы.ComponentModel.DataAnnotations;
использование системы.ComponentModel.DataAnnotations.Схема;
используя системы.Данных.Лица.Пространственный;
[Таблица("TblUser")]
общественности частичного класс пользователя
{
публичный пользователь()
{

}
~Пользователь()
{

}

пользователей общедоступных(int идентификатор,строка а,строка B,C строка)
{
этот.Идентификатор = Идентификатор;
этот.ЛЯ;
этот.B = B;
этот.C = C;
}
public int Id { get; set; }
[StringLength(50)]
общественные строку { получить; набор; }
[StringLength(50)]
публичная строка B { get; set; }
[StringLength(50)]
публичная строка C { get; set; }
}
}


Кода меня в даль :
пространство имен DataAL
{
использование системы;
используя системы.Данных.Лицо;
использование системы.ComponentModel.DataAnnotations.Схема;
использование System. Linq;
публичный класс TurboTec :DbContext
{
public TurboTec (): base ("name=ConDb")
{
}
~TurboTec()
{

}
общественные системы.Данных.Лица.DbSet UserS { get; set; }
общественные системы.Данных.Лица.DbSet TableS { get; set; }
}
}


Code Me Windows Form :
Лица.Эф.UserObj пользователей = новые лица.Эф.Пользователь();
TurboTec db = новый TurboTec();
UserObj.А = "А";
UserObj.Б = "Б";
UserObj.С = "С";
db.UserS. Add(UserObj);

База Данных SqlServer(Без Первичного Ключа И Fk):
Имя Пользователя Таблицы
Поле 1: [A] nvarchar(50)
Поле 2: [B] nvarchar (50)
Поле 3: [C] nvarchar (50)

5 Ответов

Рейтинг:
2

Member 11114915 - Tanvi

Привет.. Поскольку первичный ключ не определен в таблице, возникает проблема..Пожалуйста, объявите первичный ключ на столе TblUser а затем обновите модель.


misaqyrn9677

Я Не Работаю И Не Использую Первичный Ключ В Таблице, Но Сохраняю Запись

Рейтинг:
2

Member 11114915 - Tanvi

Не могли бы вы предоставить здесь схему таблицы?..


misaqyrn9677

Создайте таблицу [dbo].[TblUser](
[A] nvarchar(50) NULL,
[B] nvarchar(50) NULL,
[C] nvarchar(50) NULL
);

Без Длительной Навигации

Рейтинг:
11

misaqyrn9677

Я устранение ошибки при использовании объектива EF вы должны иметь первичный ключ
Но когда вы должны использовать PK в базе данных, у вас нет проблем, тогда вы моделируете одно поле, устанавливаете "ключ", а затем запускаете его без ошибки

Создайте таблицу [dbo].[TblUser](
[A] nvarchar(50) NULL,
[B] nvarchar(50) NULL,
[C] nvarchar(50) NULL
);


[key]
<pre lang="C#">public string A { get; set; }</pre>


Рейтинг:
1

Member 11114915 - Tanvi

Эй..пожалуйста, обратитесь к ссылке ниже

Начинающий архитектор: Entity Framework: добавление DataTable без первичного ключа в модель сущности.[^]

Это может помочь вам здесь..


Рейтинг:
0

The Praveen Singh

You can't. An entity MUST have a unique, immutable ID. It doesn't have to be defined as a primary key in the database, but the field or set of fields must uniquely identify the row, and its value may not change.

So, if one field in your entity, or one set of fields in your entity, satisfies these criteria, make it (or them) the ID of the entity. For example, if there is no way that a user can create two instances in the same day, you could make [A, B] the ID of the entity.

Of course this is a bad solution, and you should really change your schema and add an autogenerated, single-column ID in the entity
.


misaqyrn9677

Я Не Работаю И Не Использую Первичный Ключ В Таблице, Но Сохраняю Запись

The Praveen Singh

пожалуйста, объясните, что вы пытаетесь спросить..

misaqyrn9677

Iam работает в OTC что раньше OneBody проектировал базу данных и использовал базу данных и все таблицы не имеют первичного ключа
Мой работодатель говорит Не используйте мою таблицу не следует использовать первичный ключ

The Praveen Singh

если вы не можете использовать первичный ключ, то не используйте EF, потому что он должен быть первичным ключом в таблице, используемой в EF.