GVKun编程网logo

在 .Net Core MVC 中,在重复代码以在 dbcontext 中做同样的事情时,这是否被认为是不好的做法?

8

在这篇文章中,我们将为您详细介绍在.NetCoreMVC中,在重复代码以在dbcontext中做同样的事情时,这是否被认为是不好的做法?的内容。此外,我们还会涉及一些关于asp.net-mvc–Ide

在这篇文章中,我们将为您详细介绍在 .Net Core MVC 中,在重复代码以在 dbcontext 中做同样的事情时,这是否被认为是不好的做法?的内容。此外,我们还会涉及一些关于asp.net-mvc – IdentityDbContext vs Reb的DbContext、c# – 在属性中声明变量被认为是不好的做法吗?、css – 正在使用像’right’这样的类名被认为是不好的做法?、iframe 被认为是“不好的做法”吗?的知识,以帮助您更全面地了解这个主题。

本文目录一览:

在 .Net Core MVC 中,在重复代码以在 dbcontext 中做同样的事情时,这是否被认为是不好的做法?

在 .Net Core MVC 中,在重复代码以在 dbcontext 中做同样的事情时,这是否被认为是不好的做法?

如何解决在 .Net Core MVC 中,在重复代码以在 dbcontext 中做同样的事情时,这是否被认为是不好的做法??

我有三个类,代表数据库中的实体。 它们都有相同的字段,所有更改的是它们的名称,例如:DealerId 和 CompanyId。

我不确定这是否被认为是不好的做法,但是当我编写查询以从数据库中检索他们的信息,保存到数据库等时。我为每个人都写了同样的事情,只是改变了第一个字。例如。 ****ID,****名称。

有没有更好的方法来做到这一点?我知道我可以使用动态对象,但我不确定这是否也被认为是不好的做法?

这是一些将重复的代码的简短示例。

public Companies GetCompany(int id)
    {
        Companies company = null;
        using (MysqLConnection connection = _GetConnection)
        {
            connection.open();
            string query = "SELECT ddb_company_id,ddb_company_name FROM `ddb_companies` WHERE ddb_company_id = @Val1;";
            MysqLCommand command = new MysqLCommand(query,connection);
            command.Parameters.AddWithValue("Val1",id);
            command.Prepare();

            using (MysqLDataReader reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    company = new Companies
                    {
                        CompanyId = reader.GetInt32("ddb_company_id"),CompanyName = reader.GetString("ddb_company_name"),AddressValues = new AddressValues(),FieldValues = new List<FieldValues>()
                    };
                }
            }

解决方法

这不是坏习惯 - 这是数据库设计的问题。这完全取决于您的需求,以及您为什么想出您所做的 namig。 但是,当数据集增长或您必须重命名字段时,可能会难以维护。 您可以考虑的一种方法是在 sql 查询中使用类属性的名称(这也意味着重命名数据库中的字段以匹配该名称)。这将确保您的代码和您的 sql 字段同步。缺点是,如果您不重命名 db 字段,则重命名类中的属性可能会破坏您的应用程序 - 因此您必须注意这一点。

您可以将查询重写为:

 string query = $"SELECT "{nameof(CompanyId)}","{nameof(CompanyName)}" FROM `ddb_companies` WHERE "{nameof(CompanyId)}" = @Val1;";
         

asp.net-mvc – IdentityDbContext vs Reb的DbContext

asp.net-mvc – IdentityDbContext vs Reb的DbContext

我正在尝试构建我的IRepository接口和具体类EntityFrameworkGenericRepository,但我对DbContext有一个问题.

在EFGenericRepository中的以前版本的MVC中,您将引用EntityFramework并使用DbContext,这就是它.

现在我正在使用具有ASP.NET标识的MVC5,我需要为IdentityDbContext切换DbContext,但这意味着我需要引用ASP.NET标识.

有没有办法解决这个问题,还是完全没问题?

构造函数和属性的片段

public class EntityFrameworkGenericRepository<T> : IGenericRepository<T> where T: class
{
    protected IdentityDbContext<ApplicationUser>Context = null;

    protected DbSet<T> DbSet
    {
        get
        {
            return Context.Set<T>();
        }
    }


    public EntityFrameworkGenericRepository(IdentityDbContext<ApplicationUser> context)
    {
        if (context == null)
        {
            throw new ArgumentNullException("context");
        }
        Context = context;
    }

这是我的WebAppDbContext:

public class WebAppDbContext : IdentityDbContext<ApplicationUser>
{
    public WebAppDbContext()
        : base(nameOrConnectionString: "DefaultConnection") { }

    public DbSet<User> User { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

        base.OnModelCreating(modelBuilder);
    }
}

解决方法

这看起来很好.您有任何具体问题吗?

c# – 在属性中声明变量被认为是不好的做法吗?

c# – 在属性中声明变量被认为是不好的做法吗?

我有以下课程:

public class PeopleInfo
{
   public virtual int ID {get; protected set;}
   public virtual Person Person1 {get;set;}
   public virtual Person Person2 {get;set;}

   public virtual List<Person> People
   {
     get
     {
        var p = new List<Person>();
        p.Add(Person1);
        p.Add(Person2);
        return p;
     }
   }
}

我正在使用NHibernate. Person类被用作组件,因为“PeopleInfo”表在每行中有超过1个人. People()属性背后的想法是提供一个可以循环的只读列表.有没有更好的方法来做到这一点,还是认为这个解决方案可以接受?

解决方法

The idea behind the People property is to provide a read only list that can be looped over. Is there a better way to do this or is this solution considered acceptable?

如果这是你的意图那么你还没有实现它;你提供了一个可以循环的可变列表.

幸运的是,每次都提供不同的可变列表,但您仍然提供可变列表.

我倾向于实际提供一个不可变的列表.有很多方法可以做到这一点.如果您实际提供了一个不可变列表,那么您还可以获得额外的好处,即可以懒惰地计算列表,然后无限期地缓存和重新使用,而不是每次请求时重新构建.

如果您需要索引访问,那么我将创建一个ReadOnlyCollection并将其包装在列表的单个实例周围,然后缓存并重新使用只读集合.请注意,如果您改变基础列表,则只读集合将显示为mutate;它只是一个只读列表,它不是一个不可变列表.

如果您不需要索引访问,那么我将通过返回IEnumerable< T>来指示而不是List< T>.然后,您可以返回您选择的任何不可变集合.

css – 正在使用像’right’这样的类名被认为是不好的做法?

css – 正在使用像’right’这样的类名被认为是不好的做法?

如果我有类名,如“左”,“右”,“清除”和xhtml之类的

<a href="index.PHP">Continue</a>

用CSS喜欢

.right {
float: right;
}

我知道这不是一个语义名称,但它确实使事情变得更容易.

无论如何,你有什么想法?

解决方法

我认为这不是一个好主意.现在当你(或未来的维护者)去改变你的网站布局时,你要么必须将.right更改为{float:left;}(显然是个坏主意),要么浏览所有HTML文件并从右向左更改.

为什么你希望这个特定的链接正确,另一个.continueLink不是?使用该问题的答案为该链接选择更具描述性的类名.

iframe 被认为是“不好的做法”吗?

iframe 被认为是“不好的做法”吗?

在某个地方,我发现使用 iframe 是“不好的做法”。

这是真的?使用它们的优点/缺点是什么?

关于在 .Net Core MVC 中,在重复代码以在 dbcontext 中做同样的事情时,这是否被认为是不好的做法?的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于asp.net-mvc – IdentityDbContext vs Reb的DbContext、c# – 在属性中声明变量被认为是不好的做法吗?、css – 正在使用像’right’这样的类名被认为是不好的做法?、iframe 被认为是“不好的做法”吗?等相关内容,可以在本站寻找。

本文标签: