.NETCore 3.1 및 Blazor에서 DbContextFactory를 만드는 방법

크레이그

Blazor 및 .NET Core 3.1에서 안전하게 작동하도록 EF Core를 설정하는 방법에 대한 지침을 따르고 있습니다. MS 설명서는 다음과 같습니다. https://docs.microsoft.com/en-us/aspnet/core/blazor/blazor-server-ef-core?view=aspnetcore-3.1

지침에서 조언은 각 서비스에서 dbcontext를 만드는 데 사용되는 DbContextFactory를 만드는 것입니다. Blazor 세계에서는 모두 의미가 있지만 AddDbContextFactory가 존재하지 않으므로 코드가 컴파일되지 않습니다. .Net Core 3.1 / EF Core 3에서 다른 방법이있는 경우-볼 수 없습니다.

services.AddDbContextFactory<ContactContext>(opt =>
    opt.UseSqlite($"Data Source={nameof(ContactContext.ContactsDb)}.db")
    .EnableSensitiveDataLogging());
Umair

Microsoft 문서 페이지가 샘플 github 프로젝트에서 사용중인 이 확장 방법찾았습니다 .

        public static IServiceCollection AddDbContextFactory<TContext>(
            this IServiceCollection collection,
            Action<DbContextOptionsBuilder> optionsAction = null,
            ServiceLifetime contextAndOptionsLifetime = ServiceLifetime.Singleton)
            where TContext : DbContext
        {
            // instantiate with the correctly scoped provider
            collection.Add(new ServiceDescriptor(
                typeof(IDbContextFactory<TContext>),
                sp => new DbContextFactory<TContext>(sp),
                contextAndOptionsLifetime));

            // dynamically run the builder on each request
            collection.Add(new ServiceDescriptor(
                typeof(DbContextOptions<TContext>),
                sp => GetOptions<TContext>(optionsAction, sp),
                contextAndOptionsLifetime));

            return collection;
        }

그리고 팩토리 클래스는 다음과 같습니다.

    public class DbContextFactory<TContext> 
        : IDbContextFactory<TContext> where TContext : DbContext
    {
        private readonly IServiceProvider provider;

        public DbContextFactory(IServiceProvider provider)
        {
            this.provider = provider;
        }

        public TContext CreateDbContext()
        {
            if (provider == null)
            {
                throw new InvalidOperationException(
                    $"You must configure an instance of IServiceProvider");
            }

            return ActivatorUtilities.CreateInstance<TContext>(provider);
        }
    }

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

MySQL에서 사 분위수 1, 2 및 3에 대한 쿼리를 만드는 방법은 무엇입니까?

분류에서Dev

color_type = 3 및 bit_depth = 1 인 PNG 이미지를 만드는 방법

분류에서Dev

SQL에서 "column3"= "column1"- "column2"를 만드는 방법

분류에서Dev

Javascript 및 OOP에서 메서드를 만드는 방법

분류에서Dev

GTK 1 Liststore에 대해 3 개의 다른 필터를 만드는 방법

분류에서Dev

1-9 및 az에서 루프를 만드는 방법은 무엇입니까?

분류에서Dev

.NetCore에서 JavaScript 코드를 평가하는 방법

분류에서Dev

d3 및 SVG에서 음영 처리 된 경로를 만드는 방법은 무엇입니까?

분류에서Dev

Android에서 MP3 속도를 만드는 방법 (속도 활성화 및 증가)

분류에서Dev

부모 및 자식 목록에서 3 개의 TextView로 ExpandableListView를 만드는 방법은 무엇입니까?

분류에서Dev

이 데이터 D3 V4에서 xscales 및 xaxis를 만드는 방법

분류에서Dev

스크립트 2 3 등과 공유되는 스크립트 1에서 int를 만드는 방법

분류에서Dev

Plain Vanilla Javascript에서 .hide () 및 .show ()를 만드는 방법

분류에서Dev

XML에서 xsd 및 Java 클래스를 만드는 방법

분류에서Dev

Java에서 가입 및 로그인 ID를 만드는 방법

분류에서Dev

날짜 및 일부 숫자 열에서 고유 한 유효성 검사를 만드는 방법,하지만 날짜는 1 년-월만 소요됩니다.

분류에서Dev

GLSL 용 C ++에서 1D lut를 만드는 방법

분류에서Dev

1에서 긴 수의 모든 비트를 만드는 방법

분류에서Dev

파이썬에서 sha1 해시를 만드는 방법

분류에서Dev

CN1에서 선 그래프를 만드는 방법

분류에서Dev

ionic3 및 firebase에서 항목 검색 창을 만드는 방법

분류에서Dev

필드 (날짜)에서 1 일 전에 필드를 만드는 방법

분류에서Dev

Unity3D에서 GameObject 점프를 만드는 방법

분류에서Dev

GLFW 3에서 OpenGL 1.2 컨텍스트를 만드는 방법

분류에서Dev

python3에서 종료 타이머를 만드는 방법

분류에서Dev

Windows 10 PC의 유선 및 블루투스 모드에서 Sony WH-1000XM3 사운드를 동일하게 만드는 방법은 무엇입니까?

분류에서Dev

Android에서 여러 줄 및 initcap 모두에서 edittext를 만드는 방법

분류에서Dev

한면에 2div를 만드는 방법 (위 및 아래)

분류에서Dev

D3에서 노드를 연결하는 곡선을 만드는 방법

Related 관련 기사

  1. 1

    MySQL에서 사 분위수 1, 2 및 3에 대한 쿼리를 만드는 방법은 무엇입니까?

  2. 2

    color_type = 3 및 bit_depth = 1 인 PNG 이미지를 만드는 방법

  3. 3

    SQL에서 "column3"= "column1"- "column2"를 만드는 방법

  4. 4

    Javascript 및 OOP에서 메서드를 만드는 방법

  5. 5

    GTK 1 Liststore에 대해 3 개의 다른 필터를 만드는 방법

  6. 6

    1-9 및 az에서 루프를 만드는 방법은 무엇입니까?

  7. 7

    .NetCore에서 JavaScript 코드를 평가하는 방법

  8. 8

    d3 및 SVG에서 음영 처리 된 경로를 만드는 방법은 무엇입니까?

  9. 9

    Android에서 MP3 속도를 만드는 방법 (속도 활성화 및 증가)

  10. 10

    부모 및 자식 목록에서 3 개의 TextView로 ExpandableListView를 만드는 방법은 무엇입니까?

  11. 11

    이 데이터 D3 V4에서 xscales 및 xaxis를 만드는 방법

  12. 12

    스크립트 2 3 등과 공유되는 스크립트 1에서 int를 만드는 방법

  13. 13

    Plain Vanilla Javascript에서 .hide () 및 .show ()를 만드는 방법

  14. 14

    XML에서 xsd 및 Java 클래스를 만드는 방법

  15. 15

    Java에서 가입 및 로그인 ID를 만드는 방법

  16. 16

    날짜 및 일부 숫자 열에서 고유 한 유효성 검사를 만드는 방법,하지만 날짜는 1 년-월만 소요됩니다.

  17. 17

    GLSL 용 C ++에서 1D lut를 만드는 방법

  18. 18

    1에서 긴 수의 모든 비트를 만드는 방법

  19. 19

    파이썬에서 sha1 해시를 만드는 방법

  20. 20

    CN1에서 선 그래프를 만드는 방법

  21. 21

    ionic3 및 firebase에서 항목 검색 창을 만드는 방법

  22. 22

    필드 (날짜)에서 1 일 전에 필드를 만드는 방법

  23. 23

    Unity3D에서 GameObject 점프를 만드는 방법

  24. 24

    GLFW 3에서 OpenGL 1.2 컨텍스트를 만드는 방법

  25. 25

    python3에서 종료 타이머를 만드는 방법

  26. 26

    Windows 10 PC의 유선 및 블루투스 모드에서 Sony WH-1000XM3 사운드를 동일하게 만드는 방법은 무엇입니까?

  27. 27

    Android에서 여러 줄 및 initcap 모두에서 edittext를 만드는 방법

  28. 28

    한면에 2div를 만드는 방법 (위 및 아래)

  29. 29

    D3에서 노드를 연결하는 곡선을 만드는 방법

뜨겁다태그

보관