PM> Add-Migration initial -Context AssetContext
PM> update-database -Context AssetContext
-------------------------------------------------------------
//~AssetTracking/appsetting.josn
{
"ConnectionStrings": {
"AssetConnection": "server=localhost;database=AssetTracking;Integrated Security=True;",
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-AssetTracking-62da8af5-da00-4796-b32b-b56cd08d19d9;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
--------------------------------------------------------------------
//~/AssetTracking/Startup.cs
 public void ConfigureServices(IServiceCollection services)
        {
            // Add framework services.
            services.AddDbContext<ApplicationDbContext>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
            services.AddIdentity<ApplicationUser, IdentityRole>()
                .AddEntityFrameworkStores<ApplicationDbContext>()
                .AddDefaultTokenProviders();
            services.AddMvc();
            var cs = Configuration.GetConnectionString("AssetConnection");
            services.AddDbContext<AssetContext>(options =>
                       options.UseSqlServer(cs));
            // Add application services.
            services.AddTransient<IEmailSender, AuthMessageSender>();
            services.AddTransient<ISmsSender, AuthMessageSender>();
        }
------------------------------------------------------------------
//~/Data/AssetContext.cs
using Domain;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Data
{
public class AssetContext:DbContext
{
public AssetContext(DbContextOptions<AssetContext> options) : base(options){ }
public DbSet<Asset> Assets { get; set; }
public DbSet<AssetType> AssetType { get; set; }
public DbSet<Manufacturer> Manufacturers { get; set; }
public DbSet<Model> Models { get; set; }
}
}
----------------------------------------------------------
//~/Domain/Asset.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Domain
{
    public class Asset
    {
        public int Id { get; set; }
        public string TagNumber { get; set; }
        public Nullable<int> AssetTypeId { get; set; }
        public Nullable<int> ManufacturerId { get; set; }
        public Nullable<int> ModelId { get; set; }
        public string Description { get; set; }
        public string AssignedTo { get; set; }
        public string SerialNumber { get; set; }
        public virtual AssetType AssetType { get; set; }
        public virtual Manufacturer Manufacturer { get; set; }
        public virtual Model Model { get; set; }
    }
}
--------------------------------------------------------------
//~/Domain/Model.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Domain
{
    public class Model
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public Nullable<int> ManufacturerId { get; set; }
        public virtual ICollection<Asset> Assets { get; set; }
        public virtual Manufacturer Manufacturer { get; set; }
    }
}
-----------------------------------------------------------------
//~/Domain/AssetType.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Domain
{
    public class AssetType
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public virtual ICollection<Asset> Assets { get; set; }
    }
}
----------------------------------------------------
//~/Domain/Manufacturer.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Domain
{
    public class Manufacturer
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public virtual ICollection<Asset> Assets { get; set; }
        public virtual ICollection<Model> Models { get; set; }
    }
}
reference:
http://stackoverflow.com/questions/38162227/asp-net-core-ef-add-migration-command-not-working
http://stackoverflow.com/questions/17127351/introducing-foreign-key-constraint-may-cause-cycles-or-multiple-cascade-paths
http://stackoverflow.com/questions/1030041/if-statement-inside-a-linq-select
http://stackoverflow.com/questions/6062192/there-is-already-an-open-datareader-associated-with-this-command-which-must-be-c
 
No comments:
Post a Comment