我有一个查询,我试图运行它来填充一个excel表。这是它的代码。 queryable = (from merchantTerminalDetails in context.Posh5ProdMerchantTerminalDetails
join merchantDetails in context.MerchantDetails
on merchantTerminalDetails.MerchantRecord equals merchantD
我在域模型中使用基于Jimmy的文章的枚举类。然而,EF将类视为实体,并希望定义一个键。
有没有一种方法可以让EF像用标准C#枚举那样存储枚举类的值?
以下是我当前实现枚举类的方式:
public class ReservationStatus : Enumeration
{
public static readonly ReservationStatus Outstanding = new ReservationStatus(0, "Oustanding");
public static readonly ReservationStatus Paid = ne
示例代码:
public enum Foods
{
Burger,
Pizza,
Cake
}
private void button1_Click(object sender, EventArgs e)
{
Eat(0); // A
Eat((Foods)0); // B
//Eat(1); // C : won't compile : cannot convert from 'int' to 'Foods'
在这个问题的上下文中,如果我使用 entity 一词,我指的是DDD实体,除非我明确声明我指的是EF核心实体
我一直在阅读关于DDD模式的.NET内核。
我还查看了他们创建的包含上述文档中描述的实现的。具体来说,我看的是Order.cs聚合(链接指向的地方)。
问题的背景
我试图了解他们是如何实现Enumeration属性的。
正如您所看到的,类型类似于一个值对象,但它是一种更方便的方法(imho),用于建模行为类似枚举的属性。
使用Enumeration类型的DDD实体的摘录(完整实体位于上面的回购链接中):
public class Order
: Entity, IAggrega
我目前正在使用postgres枚举
CREATE TYPE http_action_enum AS ENUM ('GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'CONNECT', 'OPTIONS', 'TRACE', 'PATCH');
CREATE TABLE IF NOT EXISTS response
(
id UUID P
我有一个web服务,它返回一个包含字符串数组的JSON对象。我已经通过Json.NET处理了这个对象:
public partial class Token
{
[JsonProperty("id")]
public string Id { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("permissions")]
基于EF核心文档(),我尝试在枚举上使用EF核心的新值转换。我希望将枚举作为字符串保存在SQL数据库表中。
下面是实体和枚举。
public enum InputSetType
{
TypeA, TypeB
}
public class MonthlyInputSet
{
public int Id { get; set; }
public InputSetType Type { get; set; }
}
下面是我配置MonthlyInputSet实体的地方:
public class MonthlyInputSetConfiguration : IEntityTy
如果我有密码:
class A {
public:
int x;
enum class nums {
Ab = 0,
Bc,
Cd,
De,
Ef
};
A() { this->x = 0; }
}Avar [5];
可以将enum nums数字用作类的变量Avar[]的"id“,因此不需要使用static_cast<>或int()转换为int
if (Avar[static_cast<int>(A::nums::Cd)].x == 10) {
我使用的枚举类如下:
public class BillTransactionState
{
public static readonly BillTransactionState Initialized = new BillTransactionState(1, "Initialized");
public static readonly BillTransactionState Invoiceable = new BillTransactionState(2, "Invoiceable");
public static readonl
我正在寻找一种更好的方法来构造我的应用程序,这样我就可以使用实体框架来处理枚举,并且在我需要使用TSQL存储过程的情况下,在linq上使用通用表表达式etc.It看起来很棒,但是在TSQL方面,它看起来不太好(例如在投影结果时和您想要枚举字符串值时)。我已经查看了EF enum support教程和其他来自web的示例,所以我似乎找不到一种标准的方法。
教程中的部分代码
public enum DepartmentNames
{
English,
Math,
Economics
}
public partial class Department
{
public in
假设我有一个EF实体类Person,上面有一个PhoneNumber。PhoneNumber是存储为字符串类型,但我希望所有的人访问通过电话,其中有一些很好的访问器功能,如验证或GetAreaCode()。我希望在db中将其作为字符串进行备份,但在查询它时,我希望将其作为PhoneNumber返回:
public class Person {
public PhoneNumber Phone { /* Some clever get/set logic here */ }
private string _phoneNumber; // Backing field
}
或者,我
实体框架将不支持枚举,直到EF 5.0 (计划不久发布)。
WCF数据服务(和oData标准)不支持枚举
我们了解到枚举是很常见的,不幸的是,到目前为止,它们从未见过这个酒吧。不过,它们在我们接下来要做的事情中占据了很高的位置。
(见:)
我已经开始了一个新的项目,我正在用这样的东西来代替枚举:
public static class MyEnum
{
public const int MyValue = 0;
public const int AnotherValue = 1;
}
我牺牲了enum的保证,即只有定义好的值才能被分配,以便利用重要的(并且目前相当成熟的
我在使用实体框架核心插入带有默认值列的记录时遇到了一个奇怪的问题。有没有其他方法可以获得预期的行为,我是不是错过了什么愚蠢的东西? tldr:将int属性设置为0或将bool设置为true会导致对新字符串使用string.empty的默认值,并给出ORA-01400: cannot insert NULL (这似乎是oracle的问题) 场景:使用迁移添加新列和添加新记录会导致正常行为(插入默认值) adding a new record only oldField supplied= OK "ID" : 6, "OLDFIELD" : "ef tes
我收到了一个错误日志,其中显示以下代码在set中抛出了异常
public double Value {
get {
switch (DefinedUnits.Distance) {
case DistanceUnits.Feet: { return Feet; }
case DistanceUnits.Meters: { return Meters; }
case DistanceUnits.NM: { return NauticalMiles; }
受能够在EF查询中使用枚举的愿望的启发,我正在考虑向我的存储库添加一个ExpressionVisitor,它将接受传入的标准/规范标准,并重写它们以使用相应的持久化整型属性。
我一直在我的(代码优先)实体中使用以下值后缀模式:
public class User : IEntity
{
public long ID { get; set; }
internal int MemberStatusValue { get; set; }
public MemberStatus MemberStatus
{
get { return (Member
这里有一个:
enum SomeEnum
{
A = 0,
B = 1,
C = 2
}
现在编译器允许我写:
SomeEnum x = SomeEnum.A;
switch(x)
{
case 0: // <--- Considered SomeEnum.A
break;
case SomeEnum.B:
break;
case SomeEnum.C:
break;
default:
break;
}
0被认为是SomeItems.A。但我不会写:
SomeEnum
希望查询时不转换数据类型,不需要更改数据库和模型
我尝试使用short、int、byte作为参数类型,但它不起作用。
short type=1;
var list=dbcontext.table.where(d=>d.type == type);
ef sql select * from table where (cast(type as number(10,0)=1
但是我想要获取的SQL是select * from table where type =1
我已经写了下面的代码来说明在连接这两个字符串时发生的这种行为。 const getBytes = x => {
let buf = Buffer.from(x);
const n = [];
for (const value of buf.values()) {
n.push(value);
}
return [n, parseInt(buf.toString('hex'), 16)];
};
let x = unescape('%uDB40');
let y = unescape(
嗨,有一个proto文件如下:
enum Type
{
A = 0;
B = 1;
C = 2;
}
message Message
{
User to = 1;
User from = 2;
Type type = 3;
}
我使用protoc编译器将其转换为javascript实用程序类。使用这个生成的javascript文件,我在应用程序中设置了Message对象,如下所示:
const message = new Main.Message()
message.setTo(this.user1) // saved user
message
我正在建设一个AspNet核心2.1网站。我的数据模型包括一个Patient类:
public class Patient
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime DateOfBirth { get; set; }
}
现在,我希望我的应用程序代码将名称和DateOfBirth分别处理为string和DateTime,,但在底层表中,我希望两个值都存储为string.。
有人能向我指出特定的数据注释属性或Fluent API魔术,这些属性使我可以将P
我使用的是统一,我试图调用一个方法来检查单独脚本中的枚举值。
我有两个具有不同枚举值的多维数据集,但是当我调用这个函数时,只读取第一个枚举值,而不是同时读取它们。
OtherScript.cs:
using UnityEngine;
public class OtherScript : MonoBehaviour
{
Test test;
private void Awake()
{
test = FindObjectOfType<Test>();
}
void Update()
{
test.P
C#3 (Visual Studio2008)引入了对语言(,参见更改12)的破坏性更改,允许将任何文字零隐式转换为枚举。这在很多方面看起来都很奇怪。有人知道为什么这是规范的一部分吗?为什么不是字面上的呢?还是七个?为什么零是特别的?它做出了一些非常违反直觉的重载分辨率选择。例如。
function string F(object o) { return o.ToString(); }
function string F(DbType t) { return t.ToString(); }
int i = 0;
F((long)0) == "String" // would h