【问题标题】:Referencing db context class from another class从另一个类引用数据库上下文类
【发布时间】:2018-03-30 15:12:33
【问题描述】:

我有一个名为 Users.cs 的类,它首先从数据库中创建代码:

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
    {
    }
}

我已经从命名空间中获取了扩展,并在名称中添加了部分,认为它会引用 db Users 类,但事实并非如此。

如何引用该类?

【问题讨论】:

  • 他们需要在同一个命名空间中

标签: c# asp.net self-reference


【解决方案1】:

您需要将扩展​​部分放在与原始类相同的命名空间中,因此将其更改为BookingsModel

现在您将它们放在不同的命名空间中,因此它们被视为两种不同的类型,因为类的名称包含命名空间。

注意:

如果您希望自动生成的类具有不同的命名空间,请不要简单地更改它,因为它会在下次生成时被覆盖。而是右键单击 .tt 文件并选择 Properties 并在此处更改命名空间。

【讨论】:

  • 我已将命名空间从 Bookings.Models 更改为 BookingsModel 作为另一个类,但它没有引用?
  • @user7623641 参考是什么意思?现在,如果您将属性添加到扩展类,它将对两个类都可用。它不需要参考。基本上,编译器将它们视为一个类。它们实际上是一个类,但分布在不同的文件中。
猜你喜欢
  • 1970-01-01
  • 2013-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多