在命名我的数据库表时,我更喜欢使用单数名词.但是,首先在EF代码中,生成的表总是复数.我的DbSets是多元化的,我相信是EF生成名称的地方,但我不想将这些名称单一化,因为我认为在代码中使用复数更为实际.我也尝试重写设置,但无济于事.
有任何想法吗?这是我的代码和谢谢.
MyObjectContext.cs
public class MyObjectContext : DbContext, IDbContext
{
public MyObjectContext(string connString) : base(connString)
{
}
public DbSet<Product> Products {get;set;}
public DbSet<Category> Categories {get;set;}
//etc.
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingEntitySetNameConvention>();
}
}
Run Code Online (Sandbox Code Playgroud) 我似乎经常遇到这种情况.我需要使用数组中每个对象的属性作为键从数组构建一个Hash.
让我们说我需要一个哈希的例子使用ActiveRecord objecs键入他们的ID共同的方式:
ary = [collection of ActiveRecord objects]
hash = ary.inject({}) {|hash, obj| hash[obj.id] = obj }
Run Code Online (Sandbox Code Playgroud)
其他方式:
ary = [collection of ActiveRecord objects]
hash = Hash[*(ary.map {|obj| [obj.id, obj]}).flatten]
Run Code Online (Sandbox Code Playgroud)
Dream Way:我可以并且可能自己创建这个,但是Ruby或Rails中有什么东西会这样吗?
ary = [collection of ActiveRecord objects]
hash = ary.to_hash &:id
#or at least
hash = ary.to_hash {|obj| obj.id}
Run Code Online (Sandbox Code Playgroud) 我已经看到在Stack Overflow和博客上使用了yield关键字.我不使用LINQ.有人可以解释yield关键字吗?
我知道存在类似的问题.但是没有一个能用简单的语言解释它的用途.
这与其他一些问题有关,例如:这个,以及我的一些其他问题.
在这个问题和其他问题中,我们看到我们可以在一个很好的步骤中声明和初始化字符串数组,例如:
const char* const list[] = {"zip", "zam", "bam"}; //from other question
Run Code Online (Sandbox Code Playgroud)
这可以在没有麻烦的函数的实现中完成,或者在任何范围之外的.cpp文件的主体中完成.
我想要做的是将这样的数组作为我正在使用的类的成员,如下所示:
class DataProvider : public SomethingElse
{
const char* const mStringData[] = {"Name1", "Name2", "Name3", ... "NameX"};
public:
DataProvider();
~DataProvider();
char* GetData()
{
int index = GetCurrentIndex(); //work out the index based on some other data
return mStringData[index]; //error checking and what have you omitted
}
};
Run Code Online (Sandbox Code Playgroud)
但是,编译器抱怨并且我似乎无法找出原因.是否可以在类定义的一个步骤中声明和初始化这样的数组?有更好的替代方案吗?
我确信这是一个非常业余的错误,但一如既往,我非常感谢你的帮助和建议.
干杯,
XAN
我正在观察std :: map :: clear()的奇怪行为.这个方法应该在调用时调用元素的析构函数,但是在调用clear()之后仍然可以访问内存.
例如:
struct A
{
~A() { x = 0; }
int x;
};
int main( void )
{
std::map< int, A * > my_map;
A *a = new A();
a->x = 5;
my_map.insert( std::make_pair< int, *A >( 0, a ) );
// addresses will be the same, will print 5
std::cout << a << " " << my_map[0] << " " << my_map[0]->x << std::endl;
my_map.clear();
// will be 0
std::cout << a->x << std::endl; …Run Code Online (Sandbox Code Playgroud) 在db2数据库中我有一个DATE列和一TIME列,你如何将它们组合成一个TIMESTAMP?
我知道这里提到的隐藏的iFrame技巧(http://stackoverflow.com/questions/365777/starting-file-download-with-javascript)和其他答案.
我对类似的问题很感兴趣:
我如何使用Javascript下载当前页面(IE:当前DOM或其中的一些子集)作为文件?
我有一个网页,它从非确定性查询中获取结果(例如随机样本)以显示给用户.我已经可以通过查询字符串参数使页面返回文件而不是呈现页面.我可以添加"获取文件版本"按钮(我们的标准方法),但结果将与显示的结果不同,因为它是查询的不同运行.
有没有办法通过Javascript下载当前页面作为文件,或复制到剪贴板我唯一的选择?
编辑 Stefan Kendall和dj_segfault建议的选项是编写结果服务器端以供以后检索.好主意,但遗憾的是在这种情况下写文件服务器端是不可能的.
如何不寒而栗传递innerHTML的参数后到另一个页面?
我有以下代码:
public void GetJson()
{
RestRequest request = new RestRequest(Method.GET);
var data = Execute<Dictionary<string, MyObject>>(request);
}
public T Execute<T>(RestRequest request) where T : new()
{
RestClient client = new RestClient(baseUrl);
client.AddHandler("text/plain", new JsonDeserializer());
var response = client.Execute<T>(request);
return response.Data;
}
Run Code Online (Sandbox Code Playgroud)
问题是有时响应将是一个空的json数组[].当我运行此代码时,我得到以下异常:无法将类型为'RestSharp.JsonArray'的对象强制转换为'System.Collections.Generic.IDictionary`2 [System.String,System.Object]'.
有没有办法优雅地处理这个?
我想知道是否有办法克服精确度问题,这似乎是我的机器内部表示浮点数的结果:
为清楚起见,问题归纳为:
// str is "4.600"; atof( str ) is 4.5999999999999996
double mw = atof( str )
// The variables used in the columns calculation below are:
//
// mw = 4.5999999999999996
// p = 0.2
// g = 0.2
// h = 1 (integer)
int columns = (int) ( ( mw - ( h * 11 * p ) ) / ( ( h * 11 * p ) + g ) ) + 1;
Run Code Online (Sandbox Code Playgroud)
在转换为整数类型之前,列计算的结果是1.9999999999999996; 距离2.0的理想结果还差不多.
任何建议最受欢迎.
我发现了一些像这样的文章:http: //devtoolshed.com/using-stored-procedures-entity-framework-scalar-return-values
然而,当我采取步骤为int32标量创建函数导入时,这是生成的:
public ObjectResult<Nullable<global::System.Int32>> MyStoredProcedure(Nullable<global::System.Int32> orderId)
{
ObjectParameter orderIdParameter;
if (orderId.HasValue)
{
orderIdParameter = new ObjectParameter("OrderId", orderId);
}
else
{
orderIdParameter = new ObjectParameter("OrderId", typeof(global::System.Int32));
}
return base.ExecuteFunction<Nullable<global::System.Int32>>("MyStoredProcedure", orderIdParameter);
}
Run Code Online (Sandbox Code Playgroud)
我可以用这个来调用这个过程,但是我无法进入基础标量:
ObjectResult<int?> result = myEntities.MyProcedure(orderId);
在我看到的代码示例中,我应该得到context.MyProcedure().SingleOrDefault().