Tôi có cơ sở dữ liệu với 80 bảng (mỗi bảng có khoá chính). Tôi đã tạo ra mô hình trong dự án ASP.NET MVC từ cơ sở dữ liệu (Add - New Item - ADO.NET Entity Data Model). Nhưng trong mô hình tạo ra tôi có 80 lớp (cho mỗi bảng trong cơ sở dữ liệu) mà không thuộc tính [Key] ví dụ:cơ sở dữ liệu đầu tiên - EntityType xxx không có khóa được xác định. Xác định khóa cho EntityType
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Blog.Models
{
using System;
using System.Collections.Generic;
public partial class Comments
{
public int CommentId { get; set; }
public string Content { get; set; }
}
}
Vì vậy, tôi có lỗi: EntityType xxx không có khóa xác định. Xác định khóa cho EntityType này.
Tôi thường thay đổi cơ sở dữ liệu và sau đó mô hình trong dự án để Tôi không thể thêm mỗi thuộc tính [Khóa] vào 80 lớp AUTOGENERATED - tôi có thể làm gì ??
Tại sao bạn mong đợi thuộc tính '[Key]' khi bạn sử dụng DB-Trước? Thuộc tính chỉ dành cho Code-First. Đối với DB-Đầu tiên, tất cả siêu dữ liệu được lấy từ tệp edmx. Bạn có xóa tệp này không? Bạn có thay đổi chuỗi kết nối và xóa các tham chiếu edmx khỏi đó không? – Slauma
Trong tệp edmx, tôi có PK được đặt là Danh tính, nhưng trong các tệp được tạo tự động trong Model.tt Tôi không có thuộc tính [Key] trong các lớp. – michael
Như đã nói, các mô hình dự kiến không có thuộc tính [Key]. Điều gì về bối cảnh được tạo ra? Nó có chứa phương thức 'OnModelCreating' với' UnintentionalCodeFirstException' không? – Slauma