Quantcast
Channel: Xamarin.Forms — Xamarin Community Forums
Viewing all articles
Browse latest Browse all 77050

EFCore Model First: App crashes with [Key] Data annotation

$
0
0

Hi,

for the past few days, I experience a crash of my app when EFCore generates a database from my models. This appears to only happen on a device, not on the emulator, and it appears to only happen if one of my models has the [Key] data annotation on it or the property is set to be the primary key through Fluent.
This is my model:
[Table("MobileUser")]
public class UserModel
{
[Key] // works without this
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int PKMobileUser { get; set; }
}

This is my DBContext:
public class DatabaseContext : DbContext
{
public DbSet Logins { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            var path = string.Empty;

            IConfiguration config = DependencyService.Get<IConfiguration>();
            path = config.DatabasePath;

            optionsBuilder.UseSqlite($"Filename=" + Path.Combine(path, "TestEFSqlite.db"));

            // try to create a text file, to be sure it's not the path or permissions
            System.IO.File.WriteAllText(Path.Combine(path, "test.txt"), "Demotext");
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.ApplyConfiguration(new UserModelConfig());            
        }
    }

The test.txt file is generated as expected in the path that my android project returns, so it's not a permission issue.

This is my App.cs relevant code:
public App()
{
InitializeComponent();

    SQLitePCL.Batteries_V2.Init();

    using (var db = new DatabaseContext())
    {
        try
        {
            db.Database.EnsureDeleted();    // crashes here
            db.Database.EnsureCreated();    // or there if EnsureDeleted() is commented out
        }
       catch (Exception ex)
        {
            int i = 0; // for setting a breakpoint, but never reached
         }
    }

    MainPage = new MainPage();
}

And here's the debugger output:
05-24 10:30:39.123 D/Mono ( 4968): Assembly Loader probing location: '/Users/builder/jenkins/workspace/xamarin-android-d16-1/xamarin-android/external/mono/sdks/out/android-arm64-v8a-release/lib/mono/gac/Microsoft.EntityFrameworkCore.Relational.resources/2.2.4.0_de-de_adb9793829ddae60/Microsoft.EntityFrameworkCore.Relational.resources.dll'.
05-24 10:30:39.123 D/Mono ( 4968): Assembly Loader probing location: '/Users/builder/jenkins/workspace/xamarin-android-d16-1/xamarin-android/external/mono/sdks/out/android-arm64-v8a-release/lib/Microsoft.EntityFrameworkCore.Relational.resources.dll'.
05-24 10:30:39.123 D/Mono ( 4968): Assembly Loader probing location: '/Users/builder/jenkins/workspace/xamarin-android-d16-1/xamarin-android/external/mono/sdks/out/android-arm64-v8a-release/lib/mono/gac/Microsoft.EntityFrameworkCore.Relational.resources/2.2.4.0_de-de_adb9793829ddae60/Microsoft.EntityFrameworkCore.Relational.resources.exe'.
05-24 10:30:39.123 D/Mono ( 4968): Assembly Loader probing location: '/Users/builder/jenkins/workspace/xamarin-android-d16-1/xamarin-android/external/mono/sdks/out/android-arm64-v8a-release/lib/Microsoft.EntityFrameworkCore.Relational.resources.exe'.
05-24 10:30:39.123 D/Mono ( 4968): Assembly Loader probing location: '/storage/emulated/0/Android/data/com.companyname/files/.override/de-DE/Microsoft.EntityFrameworkCore.Relational.resources.dll'.
05-24 10:30:39.133 D/Mono ( 4968): Assembly Loader probing location: '/Users/builder/jenkins/workspace/xamarin-android-d16-1/xamarin-android/external/mono/sdks/out/android-arm64-v8a-release/lib/mono/gac/Microsoft.EntityFrameworkCore.Relational.resources/2.2.4.0_de_adb9793829ddae60/Microsoft.EntityFrameworkCore.Relational.resources.dll'.
05-24 10:30:39.133 D/Mono ( 4968): Assembly Loader probing location: '/Users/builder/jenkins/workspace/xamarin-android-d16-1/xamarin-android/external/mono/sdks/out/android-arm64-v8a-release/lib/Microsoft.EntityFrameworkCore.Relational.resources.dll'.
05-24 10:30:39.133 D/Mono ( 4968): Assembly Loader probing location: '/Users/builder/jenkins/workspace/xamarin-android-d16-1/xamarin-android/external/mono/sdks/out/android-arm64-v8a-release/lib/mono/gac/Microsoft.EntityFrameworkCore.Relational.resources/2.2.4.0_de_adb9793829ddae60/Microsoft.EntityFrameworkCore.Relational.resources.exe'.
05-24 10:30:39.133 D/Mono ( 4968): Assembly Loader probing location: '/Users/builder/jenkins/workspace/xamarin-android-d16-1/xamarin-android/external/mono/sdks/out/android-arm64-v8a-release/lib/Microsoft.EntityFrameworkCore.Relational.resources.exe'.
05-24 10:30:39.133 D/Mono ( 4968): Assembly Loader probing location: '/storage/emulated/0/Android/data/com.companyname/files/.override/de/Microsoft.EntityFrameworkCore.Relational.resources.dll'.
05-24 10:30:39.143 D/Mono ( 4968): DllImport searching in: 'e_sqlite3' ('libe_sqlite3.so').
05-24 10:30:39.143 D/Mono ( 4968): Searching for 'sqlite3_open_v2'.
=================================================================
Native Crash Reporting

05-24 10:30:39.153 D/Mono    ( 4968): DllImport searching in: 'e_sqlite3' ('libe_sqlite3.so').
05-24 10:30:39.153 D/Mono    ( 4968): Searching for 'sqlite3_errcode'.=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

=================================================================
    Basic Fault Adddress Reporting
=================================================================
Memory around native instruction pointer (0x7fa3bbe678):0x7fa3bbe668  00 1c 40 b9 c0 03 5f d6 fd 7b bf a9 fd 03 00 91  ..@..._..{......
0x7fa3bbe678  08 20 40 b9 a8 00 c8 37 88 01 e0 37 00 00 40 f9  . @....7...7..@.
0x7fa3bbe688  fd 7b c1 a8 c0 03 5f d6 60 08 00 b0 01 0a 00 f0  .{...._.`.......
0x7fa3bbe698  03 0a 00 f0 00 24 06 91 21 80 08 91 63 8c 0a 91  .....$..!...c...

No native Android stacktrace (see debuggerd output).

=================================================================
    Managed Stacktrace:
===================================================

05-24 10:30:39.153 D/Mono    ( 4968): DllImport searching in: 'e_sqlite3' ('libe_sqlite3.so').==============
=================================================================

05-24 10:30:39.153 D/Mono    ( 4968): Searching for 'sqlite3_errmsg'.
05-24 10:30:39.163 D/Mono    ( 4968): DllImport searching in: 'e_sqlite3' ('libe_sqlite3.so').
05-24 10:30:39.163 D/Mono    ( 4968): Searching for 'sqlite3_extended_errcode'.
05-24 10:30:39.163 D/Mono    ( 4968): Assembly Loader probing location: '/Users/builder/jenkins/workspace/xamarin-android-d16-1/xamarin-android/external/mono/sdks/out/android-arm64-v8a-release/lib/mono/gac/Microsoft.Data.Sqlite.resources/2.2.4.0_de-de_adb9793829ddae60/Microsoft.Data.Sqlite.resources.dll'.
05-24 10:30:39.163 D/Mono    ( 4968): Assembly Loader probing location: '/Users/builder/jenkins/workspace/xamarin-android-d16-1/xamarin-android/external/mono/sdks/out/android-arm64-v8a-release/lib/Microsoft.Data.Sqlite.resources.dll'.
05-24 10:30:39.163 D/Mono    ( 4968): Assembly Loader probing location: '/Users/builder/jenkins/workspace/xamarin-android-d16-1/xamarin-android/external/mono/sdks/out/android-arm64-v8a-release/lib/mono/gac/Microsoft.Data.Sqlite.resources/2.2.4.0_de-de_adb9793829ddae60/Microsoft.Data.Sqlite.resources.exe'.
05-24 10:30:39.163 D/Mono    ( 4968): Assembly Loader probing location: '/Users/builder/jenkins/workspace/xamarin-android-d16-1/xamarin-android/external/mono/sdks/out/android-arm64-v8a-release/lib/Microsoft.Data.Sqlite.resources.exe'.
05-24 10:30:39.163 D/Mono    ( 4968): Assembly Loader probing location: '/storage/emulated/0/Android/data/com.companyname/files/.__override__/de-DE/Microsoft.Data.Sqlite.resources.dll'.
05-24 10:30:39.163 D/Mono    ( 4968): Assembly Loader probing location: '/Users/builder/jenkins/workspace/xamarin-android-d16-1/xamarin-android/external/mono/sdks/out/android-arm64-v8a-release/lib/mono/gac/Microsoft.Data.Sqlite.resources/2.2.4.0_de_adb9793829ddae60/Microsoft.Data.Sqlite.resources.dll'.
05-24 10:30:39.163 D/Mono    ( 4968): Assembly Loader probing location: '/Users/builder/jenkins/workspace/xamarin-android-d16-1/xamarin-android/external/mono/sdks/out/android-arm64-v8a-release/lib/Microsoft.Data.Sqlite.resources.dll'.
05-24 10:30:39.163 D/Mono    ( 4968): Assembly Loader probing location: '/Users/builder/jenkins/workspace/xamarin-android-d16-1/xamarin-android/external/mono/sdks/out/android-arm64-v8a-release/lib/mono/gac/Microsoft.Data.Sqlite.resources/2.2.4.0_de_adb9793829ddae60/Microsoft.Data.Sqlite.resources.exe'.
05-24 10:30:39.163 D/Mono    ( 4968): Assembly Loader probing location: '/Users/builder/jenkins/workspace/xamarin-android-d16-1/xamarin-android/external/mono/sdks/out/android-arm64-v8a-release/lib/Microsoft.Data.Sqlite.resources.exe'.
05-24 10:30:39.163 D/Mono    ( 4968): Assembly Loader probing location: '/storage/emulated/0/Android/data/com.companyname/files/.__override__/de/Microsoft.Data.Sqlite.resources.dll'.
05-24 10:30:39.183 E/mono-rt ( 4968): /proc/self/maps:
05-24 10:30:39.183 E/mono-rt ( 4968): 12c00000-12d6c000 rw-p 00000000 00:01 23273                              /dev/ashmem/dalvik-main space (deleted)
05-24 10:30:39.183 E/mono-rt ( 4968): 12d6c000-2ac00000 ---p 0016c000 00:01 23273                              /dev/ashmem/dalvik-main space (deleted)
05-24 10:30:39.183 E/mono-rt ( 4968): 32c00000-32c01000 rw-p 00000000 00:01 23274                              /dev/ashmem/dalvik-main space 1 (deleted)
05-24 10:30:39.183 E/mono-rt ( 4968): 32c01000-4ac00000 ---p 00001000 00:01 23274                              /dev/ashmem/dalvik-main space 1 (deleted)
05-24 10:30:39.183 E/mono-rt ( 4968): 6f7d3000-6fa73000 rw-p 00000000 fd:01 2981918                            /data/dalvik-cache/arm64/system@framework@boot.art
05-24 10:30:39.183 E/mono-rt ( 4968): 6fa73000-6fbef000 rw-p 00000000 fd:01 2981926                            /data/dalvik-cache/arm64/system@framework@boot-core-libart.art
05-24 10:30:39.183 E/mono-rt ( 4968): 6fbef000-6fc24000 rw-p 00000000 fd:01 2981936                            /data/dalvik-cache/arm64/system@framework@boot-conscrypt.art
05-24 10:30:39.183 E/mono-rt ( 4968): 6fc24000-6fc5d000 rw-p 00000000 fd:01 2981946                            /data/dalvik-cache/arm64/system@framework@boot-okhttp.art
05-24 10:30:39.183 E/mono-rt ( 4968): 6fc5d000-6fc60000 rw-p 00000000 fd:01 2981948                            /data/dalvik-cache/arm64/system@framework@boot-core-junit.art
05-24 10:30:39.183 E/mono-rt ( 4968): 6fc60000-6fca6000 rw-p 00000000 fd:01 2981949                            /data/dalvik-cache/arm64/system@framework@boot-bouncycastle.art
05-24 10:30:39.183 E/mono-rt ( 4968): 6fca6000-6fce8000 rw-p 00000000 fd:01 2981951                            /data/dalvik-cache/arm64/system@framework@boot-ext.art
05-24 10:30:39.183 E/mono-rt ( 4968): 6fce8000-704c7000 rw-p 00000000 fd:01 2981953                            /data/dalvik-cache/arm64/system@framework@boot-framework.art
05-24 10:30:39.183 E/mono-rt ( 4968): 704c7000-70569000 rw-p 00000000 fd:01 2981958                            /data/dalvik-cache/arm64/system@framework@boot-telephony-common.art
05-24 10:30:39.183 E/mono-rt ( 4968): 70569000-70571000 rw-p 00000000 fd:01 2981959                            /data/dalvik-cache/arm64/system@framework@boot-voip-common.art
05-24 10:30:39.183 E/mono-rt ( 4968): 70571000-7057d000 rw-p 00000000 fd:01 2981960                            /data/dalvik-cache/arm64/system@framework@boot-ims-common.art
05-24 10:30:39.183 E/mono-rt ( 4968): 7057d000-705a0000 rw-p 00000000 fd:01 2981961                            /data/dalvik-cache/arm64/system@framework@boot-apache-xml.art
05-24 10:30:39.183 E/mono-rt ( 4968): 705a0000-705c8000 rw-p 00000000 fd:01 2981962                            /data/dalvik-cache/arm64/system@framework@boot-org.apache.http.legacy.boot.art
05-24 10:30:39.183 E/mono-rt ( 4968): 705c8000-705c9000 rw-p 00000000 fd:01 2981963                            /data/dalvik-cache/arm64/system@framework@boot-tcmiface.art
05-24 10:30:39.183 E/mono-rt ( 4968): 705c9000-705ca000 rw-p 00000000 fd:01 2981965                            /data/dalvik-cache/arm64/system@framework@boot-telephony-ext.art
05-24 10:30:39.183 E/mono-rt ( 4968): 705ca000-705cd000 rw-p 00000000 fd:01 2981967                            /data/dalvik-cache/arm64/system@framework@boot-WfdCommon.art
05-24 10:30:39.183 E/mono-rt ( 4968): 705cd000-705ce000 rw-p 00000000 fd:01 2981969                            /data/dalvik-cache/arm64/system@framework@boot-oem-services.art
05-24 10:30:39.183 E/mono-rt ( 4968): 705ce000-705d2000 rw-p 00000000 fd:01 2981971                            /data/dalvik-cache/arm64/system@framework@boot-qcom.fmradio.art
05-24 10:30:39.183 E/mono-rt ( 4968): 705d2000-705d3000 rw-p 00000000 fd:01 2981973                            /data/dalvik-cache/arm64/system@framework@boot-qcmediaplayer.art
05-24 10:30:39.183 E/mono-rt ( 4968): 705d3000-705e2000 rw-p 00000000 fd:01 2981975                            /data/dalvik-cache/arm64/system@framework@boot-modemservicemanager.art
05-24 10:30:39.183 E/mono-rt ( 4968): 705e2000-705ea000 rw-p 00000000 fd:01 2981977                            /data/dalvik-cache/arm64/system@framework@boot-vts.art
05-24 10:30:39.183 F/libc    ( 4968): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x20 in tid 4968 (com.companyname)

I factory-reset my phone (ZTE A2017G running Android 7.1) to no avail. I'm completely lost here. All I can say is it used to work like a charm a few days ago (I believe I updated Visual Studio 2019 to version 16.1.0 in the meantime - not sure if that could be the culprit?)

Any help is greatly appreciated :)

Currently installed Nuget Packages and versions:
Microsoft.EntityFrameworkCore (2.2.4)
Microsoft.EntityFrameworkCore.Sqlite (2.2.4)
Xamarin.Essentials (1.1.0)
Xamarin.Forms (4.0.0.425677)

Cheers,

Roland


Viewing all articles
Browse latest Browse all 77050

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>