Xamarin에서 Entity Framework Core를 사용할 때의 참고 사항

Xamarin에서 Entity Framework Core를 사용할 때의 참고 사항



소개



Xamarin에서 Entity Framework Core를 사용할 때 몇 가지 작업이 있었기 때문에 해결 방법에 대한 메모를 제공합니다.

마이그레이션 도구



Xamarin 프로젝트에 대해 Entity Framework Core 마이그레이션 도구의 dotnet ef 명령을 직접 실행할 수 없습니다. 콘솔 응용 프로그램이 Xamarin 프로젝트를 참조하도록 명령을 실행해야 합니다.

.NET Core 콘솔 응용 프로그램을 솔루션에 추가하고 콘솔 응용 프로그램 참조 설정에서 Xamarin 프로젝트를 추가합니다.



콘솔 애플리케이션 프로젝트의 디렉토리에서 dotnet ef 명령을 실행하십시오.


dotnet ef migrations add [マイグレーションの名前] -p [DbContext を持つプロジェクトの csproj ファイル]

그러면 마이그레이션 관련 코드를 생성할 수 있습니다.



System.Buffuers와 관련된 빌드 오류



Android 프로젝트를 빌드하면 다음과 같은 빌드 오류가 발생할 수 있습니다.

Can not resolve reference: System.Buffers , referenced by System.Memory . Please add a NuGet package or assembly reference for System.Buffers , or remove the reference to System.Memory .

이 경우 NuGet을 사용하여 System.Buffers를 설치하면 해결할 수 있습니다.

Linker 설정



Release 빌드 시 링커는 사용(또는 참조)되지 않는 어셈블리, 형식 및 멤버를 파괴하므로 Entity Framework Core에서 사용하는 클래스를 파기하지 않도록 Linker를 구성해야 합니다. 다음과 같은 xml 파일을 iOS, Andorod 프로젝트에 추가하여 빌드 작업을 설정해야 합니다.
<?xml version="1.0" encoding="utf-8" ?>
<linker>
  <assembly fullname="mscorlib">
    <type fullname="System.String">
      <method name="Compare"></method>
      <method name="CompareTo"></method>
      <method name="ToUpper"></method>
      <method name="ToLower"></method>
    </type>
  </assembly>
  <assembly fullname="System.Core">
    <type fullname="System.Linq.Expressions.Expression`1"></type>
    <type fullname="System.Linq.Queryable"></type>
  </assembly>
</linker>

Visual Studio 빌드 작업에서 [LinkDescription]을 설정합니다.



SQLitePCL.Batteries_V2.Init() 호출



SQLite 데이터베이스를 사용하는 경우 응용 프로그램을 초기화할 때 SQLitePCL.Batteries_V2.Init()를 호출해야 합니다.
SQLitePCL.Batteries_V2.Init();

사이고에게



GitHub의 Issue에서 Entity Framework Core가 제대로 작동하지 않을 때의 해결 방법이 요약되어 있습니다. 이쪽도 정기적으로 워치 해 두면 좋을지도 모릅니다.
  • Workarounds for Xamarin.iOS app with EFCore 2.0
  • 좋은 웹페이지 즐겨찾기