我正在尝试自定义 Railsscaffold 命令,以便当我运行时
rails generate scaffold api/v1/model_name
Run Code Online (Sandbox Code Playgroud)
它仍然生成文件夹结构,但不会将 api_v1_ 添加到视图、测试等中。
我了解如何从这篇文章中覆盖和添加新的部分: 覆盖 Rails 脚手架生成器,但我想覆盖测试、工厂和视图。
因此,新的语言功能实现了简写默认关键字的选项。
public void GenericMethod<T>(T responseObject = default)
{
//Your code here
}
Run Code Online (Sandbox Code Playgroud)
而不是旧的
public void GenericMethod<T>(T responseObject = default(T))
{
//Your code here
}
Run Code Online (Sandbox Code Playgroud)
当使用新的简写时,我们遇到了一个错误,即无法在 dotnet core 中搭建视图或控制器。- 给出错误“运行所选代码生成器时出错:无法获取 DbContext 的反射类型:...”
通过恢复到实现“默认”的旧方式,错误就会消失。
截至目前,使用 default 关键字的新方法是我们遇到的唯一破坏它的方法,但我认为类似的新语言功能可能会存在问题。
这其实不是一个问题。我们只是认为传播这个错误的信息会很好;因为没有帖子讨论这个问题。
视觉工作室:视觉工作室 2019
目标框架:.NET Core 2.2
编辑:这不是 EF 的问题。如果尝试在没有使用模型类(FooClass)的 dbContext 的情况下构建视图,错误将更改为:无法获取模型的反射类型:FooClass
我有一个简单的数据库,其中有一张表,该表具有各种属性。
我正在使用最新的 .NET core 6 和最新的 EF (6.0.4)
我想构建我的数据库以便它生成模型,所以我运行命令:
dotnet ef dbcontext scaffold "Server=MyServerName;Database=MyDBName;User Id=sa;Password=abc123;"
Microsoft.EntityFrameworkCore.SqlServer -o Model --no-pluralize -d -f
Run Code Online (Sandbox Code Playgroud)
-d 命令应该使用数据注释而不是流畅注释,但事实并非如此。我最终得到一个MyTable类,其中清楚地列出了属性,例如public int MyTableId; public string MyTableProperty;....,然后在我的MyDBNameContext类OnModelCreating方法中,有几页这样的内容:
modelBuilder.Entity<MyTable>(entity =>
{
entity.HasIndex(e => e.SomeColumn, "idx_somecolumn");
entity.Property(e => e.firstcolumn)
.HasColumnType("decimal(8, 1)")
.HasColumnName("FirstColumn");
...
Run Code Online (Sandbox Code Playgroud)
这真是太可怕了。帮助中是这么说的:
-d|--data-annotations 使用属性来配置模型(如果可能)。如果省略,则仅使用 Fluent API。
我可以煞费苦心地手动完成并添加注释,但如果我将来由于更改而重新生成,那么它将撤消我的工作。
数据注释属性不起作用是否有原因?
.net scaffolding entity-framework-core entity-framework-migrations
语境:
我使用数据库优先方法通过 Entity Framework Core 和脚手架生成实体。每次我更改数据库中的某些内容时,我都会使用-f参数运行脚手架来重写生成的实体。到目前为止,一切都很好。在我的数据库模式中,我有一些查找表,它们用作其他表的枚举,并且这些其他表上有外键。
问题:
我想从这些查找表生成枚举,我可以在代码中使用它们。这些枚举应由查找表中的数据(Id、Value)填充。这样的事情有可能吗?
我发现人们可以忽略实体生成中的那些表,并使用value-conversions链接它们自己的枚举。但这真的是唯一的出路吗?
我的数据库架构示例:
桌子:Category
| ID | 价值 |
|---|---|
| 0 | 有氧运动 |
| 1 | 力量 |
| 2 | 肥大 |
桌子:Exercise
| ID | 姓名 | 类别 |
|---|---|---|
| 0 | 硬拉 | 1 |
| 1 | 卧推 | 1 |
| 2 | 跑步 | 0 |
所以从表中Category我想生成简单的枚举:
public enum Category {
Cardio = 0,
Strength = 1,
Hyperthrophy = 2
}
Run Code Online (Sandbox Code Playgroud)
然后我希望它在实体中使用,Exercise例如:
public partial class Exercise {
public Exercise() {
}
public int Id { get; set; }
public string Name { get; set; …Run Code Online (Sandbox Code Playgroud) c# enums scaffolding ef-database-first entity-framework-core
Entity Framework Core 7 引入了一项重大更改(尽管它未在 EF Core 7 的重大更改中列出):使用脚手架 ( Scaffold-DbContext) 定义模型类时,EF Core 7 现在将ICollection属性设置为只读。
EF 6 代码示例:
public virtual ICollection<PictureData> PictureData { get; set; }
public virtual ICollection<PictureMetaData> PictureMetaData { get; set; }
Run Code Online (Sandbox Code Playgroud)
EF Core 7 代码示例:
public virtual ICollection<PictureData> PictureData { get; } = new List<PictureData>();
public virtual ICollection<PictureMetaData> PictureMetaData { get; } = new List<PictureMetaData>();
Run Code Online (Sandbox Code Playgroud)
我有分配给这些属性的代码,有什么方法可以强制将Scaffold-DbContext这些属性定义为非只读吗?(而且我不想手动更改它......)
(有没有理由让这些只读?)
谢谢你的帮助!
假设我有一个SessionsController控制用户登录和注销的操作,但我真正需要的唯一操作是新的(用于显示登录表单),创建(用于身份验证和登录)以及用于注销用户的销毁.
如果我在控制器中只有这三个动作,或者我是否必须全部实现它们以使其正确RESTful,是否有任何问题?
第二个小问题.有人说脚手架很糟糕,而且应该手工编写代码,但我发现它非常有用且节省时间.
是否可以使用脚手架,还是应该避免的邪恶?为什么?
我有rails 2.3和ruby 1.8.7
我想只创建一个控制器并查看它的文件.在rails2.3中是否有任何命令可以帮助我做到这一点.我知道这可以在rails 3中完成,但有没有办法在rails 2.3中执行此操作
有没有人完全引用我可以在MVC 3附带的T4模板ControllerWithContext.tt中使用的Host对象的成员?
我已经尝试了我能想到的每一个谷歌搜索,但唯一相关的结果是这个页面:http: //blogs.msdn.com/b/webdevtools/archive/2009/01/29/t4-templates-a-quick -启动引导换ASP净MVC-developers.aspx
但它只显示4个属性(ItemName,NameSpace,ExtraActionMethods,ControllerRootName)而不是完整列表.在模板中有像RelatedProperties,EntitySetName,ModelType和ContextType之类的东西.
我正在尝试查找完整的属性列表,其类型和说明.任何帮助将不胜感激.
我已经阅读了许多MVC教程,现在我想创建一个现有数据库的原型mvc应用程序.
我已经安装了MVCScaffolding包,我想将它与现有数据库一起使用.有人找到了这样做的步骤吗?我看了,但一直无法弄清楚如何让它工作.
我想连接到SQL Server数据库并从中创建模型.然后搭建视图和控制器.
有什么我不理解的吗?这是MVC脚手架的工作原理吗?
在GORM文档之后,我尝试将以下域类与Grails 2.2.1一起使用:
package grailscompositiontest
class ScafPerson {
String name
ScafAddress homeAddress
ScafAddress workAddress
static constraints = {
name(nullable: false, blank: false)
}
static embedded = ['homeAddress', 'workAddress']
}
class ScafAddress {
String number
String code
}
Run Code Online (Sandbox Code Playgroud)
控制器只使用脚手架:
package grailscompositiontest
class ScafPersonController {
static scaffold = true
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用,只要我浏览到"创建"视图就会触发服务器错误:
URI: /GrailsCompositionTest/scafPerson/create
Class: java.lang.NullPointerException
Message: Cannot get property 'id' on null object
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?
scaffolding ×10
c# ×3
asp.net-mvc ×2
ruby ×2
.net ×1
.net-7.0 ×1
ef-core-7.0 ×1
entity-framework-migrations ×1
enums ×1
generator ×1
grails ×1
grails-orm ×1
rest ×1
t4 ×1