초보자 용 질문. 다음을 감안할 때 :정적 객체 및 시드 데이터 (EF 코드 우선)
public static Tenant Www = new Tenant() { TenantId = 1, Name = "www", Urls = new string[]{"https://app.com"}};
매개 변수가 정의 된 개체에 대한 참조가 있습니다. 이 경우이 값을 가진 객체가 데이터베이스에 있다고 가정합니까? 내 종자 방법에서 임차인이 추가 Url
포함
if (context.Tenants.FirstOrDefault(s => s.Name == "Www") == null) {
context.Tenants.Add(new Tenant() {
TenantId = 1,
Name = "Www",
Urls = new string[]{"https://app.com", "http://localhost"}
});
}
참고 :
내 종자 방법은 다음을 포함합니다. Tenant.Www
을 통해 쿼리 할 때 어떤 버전이 사용되는지 혼란 스럽습니다.
obj.TenantId = Tenant.Www.TenantId
과 같은 것을 통해 정적 방법을 사용하는 경우 ID 만 사용되지만 어떤 경우에는 obj.Tenants.push(Tenant.Www)
과 같은 작업을 수행 할 수 있습니까? 어느 것이 사용 되었습니까? 그리고 그 이유는 무엇입니까?
감사합니다. 만약 내가 단지 지름길을 위해서 static 클래스를 사용하려고한다면, TenantId가 정의 된 Tenant의 인스턴스를 정의하는 것이 안전 할 것이므로 Tenant.Www.TenantId를 통해 항상 관계를 할당 할 수 있습니까? 아니면 FirstOrDefault 쿼리를 항상 안전하게 수행하도록 제안 하시겠습니까? – SB2055
질문의 문맥에서 "안전"을 정의하십시오. 이 정적 인스턴스에서 무엇을 원합니까? – Dennis
내 ID 정의 접근 방식으로 push (Tenant.Www) 또는 Add (Tenant.Www)와 같은 작업을 수행해야하는 경우 비어 있거나 오래된 Tenant 개체를 할당하는 것을 두려워 할 것입니다. 예 : 정적 Tenant.Www가 정의 된 ID 만 가지고 있고 Add() 연산에 사용한다고 가정합니다. EF가 정확히 일치하는 항목을 찾을 수 없기 때문에 다른 Tenant가 생성됩니까? 또는 EF가 PK에만 관심이 있기 때문에 일치하는 ID로 시드()로부터 임차인을 사용할 것입니까? – SB2055