ASP.NET 마이그레이션 '복합 기본 키 오류'추가 유창한 API 사용 방법
안녕하세요 저는 웹 응용 프로그램을 만드는 중이며 이미 Microsoft.entityFrameworkCore 및 Microsoft.entityFrameworkCore.Tools를 모두 설치했습니다 .
패키지 관리자 콘솔에서 추가 마이그레이션을 실행하는 동안 오류가 발생합니다.
" System.InvalidOperationException : 엔티티 유형 'Attends'에 데이터 주석으로 정의 된 복합 기본 키가 있습니다. 복합 기본 키를 설정하려면 유창한 API를 사용하십시오. "
다음은 엔티티 폴더의 코드입니다.
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Threading.Tasks;
namespace _3241_farmDb.Entities
{
public class Farm
{
[Required, MaxLength(30)]
[Key]
public string FarmName { get; set; }
[Required, MaxLength(15)]
public string FarmCity { get; set; }
[Required, MaxLength(9)]
public string FarmerSSN { get; set; }
}
public class Farmer
{
[Required, MaxLength(9)]
[Key]
public int SS { get; set; }
[Required, MaxLength(9)]
public string Fname { get; set; }
[Required, MaxLength(15)]
public string Lname { get; set; }
[Required, MaxLength(15)]
public string CityName { get; set; }
[Required, MaxLength(15)]
public string Address { get; set; }
[Required, MaxLength(30)]
public string BoardPositionName { get; set; }
}
public class Child
{
[Required, MaxLength(9)]
[Key]
public int FarmerSS { get; set; }
[Required, MaxLength(15)]
[Key]
public string Fname { get; set; }
[Required, MaxLength(15)]
[Key]
public string Lname { get; set; }
[Required]
public int Age { get; set; }
}
public class Attends
{
[Key, Column(Order = 1)]
public int FarmerSS { get; set; }
[Key, Column(Order = 2)]
public int HotelID { get; set; }
[Required, MaxLength(15)]
public string BoardPosition { get; set; }
}
public class Livestock
{
[Required, MaxLength(15)]
public int LivestockID { get; set; }
[Required, MaxLength(15)]
public string LivestockType { get; set; }
}
public class Farm_Houses
{
[Required, MaxLength(15)]
[Key]
public int LivestockID { get; set; }
[Required, MaxLength(15)]
public string FarmName { get; set; }
}
public class Crops
{
[Required, MaxLength(15)]
[Key]
public int CropID { get; set; }
[Required, MaxLength(15)]
public string CropName { get; set; }
}
}
복합 키를 올바르게 설정하려면 어떻게 조정합니까?
에 EF 코어 ..
Composite keys can only be configured using the Fluent API - conventions will never setup a composite key and you can not use Data Annotations to configure one.
Here is the Fluent API version :
Note: This is just an example. Please adjust it according to your use case.
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Attends>()
.HasKey(c => new { c.FarmerSS, c. HotelID });
}
You can read more about it here : composite key
ReferenceURL : https://stackoverflow.com/questions/40898365/asp-net-add-migration-composite-primary-key-error-how-to-use-fluent-api
'Development Tip' 카테고리의 다른 글
Chrome 개발 도구 : 정규식이있는 문자열을 포함하는 각 호출을 제외하는 방법은 무엇입니까? (0) | 2021.01.10 |
---|---|
배포 된 Heroku 앱에서 파일 및 파일 구조를 보는 방법 (0) | 2021.01.10 |
rm은 스크립트에서 와일드 카드로 파일을 삭제하지 못하지만 쉘 프롬프트에서 작동합니다. (0) | 2021.01.10 |
Regex.Replace를 사용하여 문자열에서 숫자를 제거하는 방법은 무엇입니까? (0) | 2021.01.10 |
표준 API에 자연 비교기가 존재합니까? (0) | 2021.01.10 |