Skip to content

: Schema specified is not valid. Errors: (0,0) : error 0040: The Type is not qualified with a namespace or alias. Only primitive types can be used without qualification #35

@MikelLuri

Description

@MikelLuri

I've made a simple project to test ModelDefinedFunctions and I can't get it to work... I get an exception:

MetadataException: Schema specified is not valid. Errors:
(0,0) : error 0040: The Type Person is not qualified with a namespace or alias. Only primitive types can be used without qualification.

It's a Code-First project. Very simple. Just a table, and I want to create a function to concat two fields.

    public class Person
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }


    public static class ModelDefinedFunctions
    {
        [ModelDefinedFunction(nameof(FormatName), "DataAccess",
            @"[Person].[FirstName] + N' ' + [Person].[LastName]")]
        public static string FormatName(this Person person) =>
            $"{person.FirstName} {person.LastName}";
    }


    public class MyContext : DbContext
    {
        public MyContext() : base("MyDbContext")
        {
            Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, Configuration>());

        }

        public DbSet<Person> Persons { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            modelBuilder.AddFunctions(typeof(ModelDefinedFunctions));
        }
    }

I've set up a demo project to show the error: https://github.com/MikelLuri/EFFunctionsExample
Is it a bug, am I doing something wrong...?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions