从另一个 class 引用数据库上下文 class
Referencing db context class from another class
我有一个名为 Users.cs 的 class,它是代码优先从数据库创建的:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
using BookingsModel;
namespace BookingsModel
{
public partial class Users
{
[Key]
public int UserID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string EmailID { get; set; }
public Nullable<System.DateTime> DateOfBirth { get; set; }
public string Password { get; set; }
public bool IsEmailVerified { get; set; }
public System.Guid ActivationCode { get; set; }
public static object ReferenceEquals(bool v)
{
throw new NotImplementedException();
}
}
}
在我的项目 > 模型中,我创建了一个名为 Extended 的文件夹,并在其中创建了一个 Users.cs 文件:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using BookingsModel;
namespace Bookings.Models
{
public partial class Users
{
}
}
我已经从命名空间中提取了 extended 并在名称中添加了 partial 以为它会引用 db Users class 但它没有。
如何引用那个 class?
您需要将扩展部分放在与原始 class 相同的命名空间中,因此将其更改为 BookingsModel
。
现在您将它们放在不同的命名空间中,因此它们被视为 2 种不同的类型,因为 class 的名称包含命名空间。
注:
如果您希望自动生成的 class 具有不同的命名空间,请不要简单地更改它,因为它会在下次生成时被覆盖。而是右键单击 .tt
文件并选择 Properties
并更改那里的命名空间。
我有一个名为 Users.cs 的 class,它是代码优先从数据库创建的:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
using BookingsModel;
namespace BookingsModel
{
public partial class Users
{
[Key]
public int UserID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string EmailID { get; set; }
public Nullable<System.DateTime> DateOfBirth { get; set; }
public string Password { get; set; }
public bool IsEmailVerified { get; set; }
public System.Guid ActivationCode { get; set; }
public static object ReferenceEquals(bool v)
{
throw new NotImplementedException();
}
}
}
在我的项目 > 模型中,我创建了一个名为 Extended 的文件夹,并在其中创建了一个 Users.cs 文件:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using BookingsModel;
namespace Bookings.Models
{
public partial class Users
{
}
}
我已经从命名空间中提取了 extended 并在名称中添加了 partial 以为它会引用 db Users class 但它没有。
如何引用那个 class?
您需要将扩展部分放在与原始 class 相同的命名空间中,因此将其更改为 BookingsModel
。
现在您将它们放在不同的命名空间中,因此它们被视为 2 种不同的类型,因为 class 的名称包含命名空间。
注:
如果您希望自动生成的 class 具有不同的命名空间,请不要简单地更改它,因为它会在下次生成时被覆盖。而是右键单击 .tt
文件并选择 Properties
并更改那里的命名空间。